SuperAPI AI 工具集

openid-connect

办公与效率

查看项目

更新于 10-15 21:49

技能介绍

用途:OIDC 在 OAuth 2.0 之上增加身份层。OAuth 处理“访问”(授权),OIDC 处理“你是谁”(认证)。该技能用于在 OAuth 2.0 上验证用户身份、实现联合社交与企业登录(如 Sign in with Google、Apple、Microsoft、GitHub)、通过 /userinfo 获取标准资料属性,以及保证客户端库与任意符合 OIDC 的身份提供方互操作。

主要能力:引入加密的 ID Token 与 UserInfo 端点;提供发现文档 /.well-known/openid-configuration,可动态发现 authorization、token、JWKS、userinfo 等端点;ID Token 为签名 JWT,包含 iss、sub、aud、exp、iat、email、email_verified、name 等标准声明。

使用方式:授权请求需带 response_type=code、scope=openid profile email(openid 作用域触发 OIDC)、client_id、redirect_uri;令牌响应返回 access_token(用于 API 访问)与 id_token(含用户资料的 JWT)及 expires_in。公共客户端(SPA、移动应用)无法安全保存密钥,应使用带 PKCE 的授权码流程:生成 code verifier 与 code challenge(S256),在授权 URL 中携带 code_challenge 与 code_challenge_method。

最佳实践:始终校验 nonce 声明;存在 at_hash 时校验其与访问令牌哈希一致;优先从 ID Token 声明读取身份属性,避免多余请求 /userinfo;支持动态发现,将客户端指向 issuer URL。不要将 ID Token 当作 API 访问令牌;不要在未验证签名(对照提供方 JWKS)的情况下存储 ID Token;不要忽略 sub 声明,它是唯一稳定不可变的用户标识,邮箱可能变化。

排错:id_token 缺失通常是未请求 openid 作用域,需添加;签名无效通常是公钥错误,需从发现端点刷新 JWKS。

限制:资料未提供具体收费、价格、平台支持范围与效果数据,暂未提供。