闲社服务运行正常AI智能体自动化平台
o

OIDC集成

技能标识:oidc-integration

Plan and implement OIDC and OAuth 2.0 integration for React or TypeScript frontends and Java or Spring Boot backends. Use whenever the user mentions OIDC, OpenID Connect, OAuth login, SSO, PKCE, authorization code flow, refresh tokens, JWT or JWKS validation, login callback pages, protected routes, Keycloak, Auth0, IdentityServer, Authing, multi-provider auth, or "add login" and "integrate IdP" style requests even if they do not explicitly say OIDC.

作者:admin | 来源记录:ClawHub
登记来源
ClawHub
版本
V 0.1.0
检测标记
后台标记通过
免费
免费获取
0
收藏
来源与检测标记为平台登记信息,并不代表已展示可复核的检测报告。使用前请核对版本、依赖和所需权限,建议先在隔离环境中运行。
概述
安装方式
版本历史

OIDC集成

OIDC 集成

使用此技能设计或实现依赖 OpenID Connect 提供者的身份验证流程。

目标

帮助用户以匹配其架构、避免不安全默认设置、生成适合当前技术栈而非通用示例代码的方式集成 OIDC。

工作方式

在编写代码之前,先确定实际的集成形态。

首先检查以下几点:

  • - 哪一方持有认证状态:仅 SPA、后端会话或 BFF。
  • 涉及哪个提供者:Keycloak、Auth0、IdentityServer、Authing、Azure AD 或其他符合 OIDC 标准的身份提供者。
  • 是一个提供者还是多个提供者。
  • 客户端是公开的还是机密的。
  • 是否需要刷新令牌。
  • 用户只需要登录、登录加登出、路由保护、令牌验证,还是完整的端到端流程。
  • 代码库是否已使用应扩展而非替换的身份验证库。

如果用户只需要某一层,则保持在该层范围内。除非任务实际跨越前端和后端,否则不要同时生成前端和后端集成。

安全默认设置

除非用户明确需要不同的设置,否则应用以下默认设置:

  • - 优先使用授权码流程。
  • 对于基于浏览器的公开客户端,使用 PKCE。
  • 优先从 /.well-known/openid-configuration 发现提供者元数据,而非硬编码端点。
  • 优先使用服务器管理的会话或 httpOnly cookie,而非在 localStorage 中存储长期令牌。
  • 如果纯 SPA 必须在浏览器存储中持有令牌,请说明权衡并保持令牌生命周期较短。
  • 仅在确实需要刷新令牌时请求 offline_access。
  • 验证 iss、aud、签名、过期时间和密钥轮换行为。
  • 将登出视为两个独立的问题:本地应用登出和提供者登出。

不要将不安全的捷径规范化为默认推荐。

首选实现路径

在手动编写身份验证代码之前,优先使用框架原生或得到良好支持的库。

如果用户要求具体的实现示例,请仅读取相关的参考文件,而不是展开主要技能主体:

  • - references/react-spa.md 用于 React 或 TypeScript SPA 的登录、回调、守卫和 API 调用。
  • references/spring-resource-server.md 用于 Spring Boot 的承载令牌验证和路由保护。
  • references/multi-provider.md 用于双提供者或多签发者设置。

前端

当以下选项适合现有技术栈时优先使用:

  • - oidc-client-ts
  • react-oidc-context
  • 仓库中已有的身份验证包装器

仅在项目约束要求时生成自定义 PKCE 和令牌交换代码。

Spring Boot 后端

在编写自定义 JWT 验证服务之前,优先使用以下选项:

  • - spring-boot-starter-oauth2-client 用于登录流程
  • spring-boot-starter-oauth2-resource-server 用于承载令牌验证
  • 当标准资源服务器行为足够时,使用 Spring Security 配置而非手动拦截器

仅当提供者或架构需要非标准行为时,才回退到手动 JWKS 查找和自定义验证逻辑。

实现检查清单

在生成代码或计划时,涵盖以下相关项目。

前端交付物

  • - OIDC 提供者配置
  • 登录入口点
  • 回调处理
  • 应用启动时的认证状态恢复
  • 路由保护或守卫逻辑
  • API 客户端认证头策略
  • 令牌刷新行为(如果需要)
  • 登出流程
  • 登录后返回原始页面的行为
  • 多提供者选择(如果适用)

后端交付物

  • - 提供者配置和环境变量
  • 元数据或 JWKS 发现
  • 令牌验证策略
  • 用户主体或声明映射
  • 受保护和公开的路由规则
  • 前后端分离时的 CORS 和 Cookie 策略
  • 多签发者处理(如果适用)

架构指导

使用与产品匹配的架构,而非代码量最多的选项。

SPA 直接与 API 通信

使用带有 PKCE 的授权码流程。

包括:

  • - 提供者配置
  • 回调页面
  • 认证状态提供者
  • 刷新策略(如果需要)
  • 401 重试或重新登录行为

明确说明令牌存储的权衡。

后端或 BFF 持有会话

优先使用后端管理的会话和 httpOnly cookie。

在以下情况下,这通常是更安全的默认选择:

  • - 后端已存在
  • 前端与后端同源
  • 应用不需要浏览器端访问令牌
  • 团队希望减少 JavaScript 中的令牌暴露

多提供者认证

保持提供者特定配置明确。

  • - 独立的提供者配置。
  • 持久化记录哪个提供者发起了登录流程。
  • 保持回调处理能够解析当前活动的提供者。
  • 在后端,支持基于签发者的选择而非猜测。

输出期望

在响应用户任务时,仅生成该仓库和请求所需的内容。

优先按以下顺序:

  1. 1. 说明选择的流程及其适用原因。
  2. 列出需要存在的文件或组件。
  3. 实现最小完整路径。
  4. 指出所需的环境变量和提供者设置。
  5. 提及重要的后续检查,如登出、刷新和过期令牌处理。

如果任务仅需要小幅更改,避免粘贴大段教程。

常见陷阱

注意以下失败模式:

  • - 硬编码令牌或 JWKS 端点,而非使用发现元数据。
  • 推荐隐式流程。
  • 在浏览器存储中存储刷新令牌而未说明风险。
  • 忘记持久化和恢复原始返回 URL。
  • 实现刷新但未处理刷新失败。
  • 仅验证签名,跳过签发者或受众检查。
  • 在应用支持多个提供者时假设单一签发者。
  • 混淆前端登录关注点与后端承载令牌验证关注点。

最小模式

使用紧凑模式而非过大的示例。

前端配置形状

typescript
export const oidcConfig = {
authority: import.meta.env.VITEOIDCAUTHORITY,
clientId: import.meta.env.VITEOIDCCLIENT_ID,
redirectUri: ${window.location.origin}/auth/callback,
scope: openid profile email,
responseType: code,
};

如果应用是公开客户端,添加 PKCE 支持。

Spring 资源服务器方向

yaml
spring:
security:
oauth2:
resourceserver:
jwt:
issuer-uri: https://idp.example.com

当标准 Spring Security 支持足够时,优先使用此方向而非手写 JWT 解析。

对于更完整的示例,请从 references/ 读取相关文件,而非默认粘贴所有变体。

验证

在认为集成完成之前,验证相关流程:

  • - 从干净会话成功登录。
  • 回调处理成功和提供者错误响应。
  • 受保护路由正确重定向或拒绝。
  • 过期访问令牌被正确处理。
  • 刷新行为正常工作或干净地失败。
  • 后端拒绝具有错误签发者或受众的令牌。
  • 登出清除本地状态,并在需要时从提供者登出。

最后提醒

此技能应帮助模型首先做出正确的架构选择,然后为该技术栈实现最小的合理解决方案。优先使用安全默认设置、现有框架支持和仓库特定适配,而非通用身份验证样板代码。

标签

skill ai

通过对话安装

以下为平台配置的接入选项,并非逐项实测通过。能否安装取决于客户端支持、技能来源和运行环境:

OpenClaw WorkBuddy QClaw Kimi Claude

方式一:安装 SkillHub 和技能

帮我安装 SkillHub 和 oidc-integration-1776098828 技能

方式二:设置 SkillHub 为优先技能安装源

设置 SkillHub 为我的优先技能安装源,然后帮我安装 oidc-integration-1776098828 技能

通过命令行安装

skillhub install oidc-integration-1776098828

下载

⬇ 下载 oidc-integration v0.1.0(免费)

文件大小: 7.23 KB | 发布时间: 2026-4-14 12:28

v0.1.0 最新 2026-4-14 12:28
oidc-integration 0.1.0 initial release:

- Provides detailed planning and implementation guidance for integrating OIDC/OAuth 2.0 with React/TypeScript frontends and Java/Spring Boot backends.
- Outlines security defaults, architectural choices, and library preferences for both frontend and backend.
- Includes structured checklists, common pitfalls, and minimal example patterns.
- Emphasizes matching recommendations to the user's project architecture and stack.
- References specialized files for concrete implementation paths where appropriate.
返回顶部