无需登录 数据私有 本地保存

OpenID Connect Discovery 浏览器 - 获取身份配置

16
0
0
0

OpenID Connect Discovery

输入 OIDC Provider 的 Issuer URL,自动获取 .well-known/openid-configuration 配置信息,结构化展示所有端点与能力。

Google Microsoft (v2.0) Microsoft (组织) Apple GitHub Actions

常见问题

OpenID Connect Discovery 是 OIDC 规范定义的一种机制,允许客户端(RP)通过一个已知的 URL 路径 /.well-known/openid-configuration 自动获取 OIDC Provider(OP)的所有必要配置信息,包括授权端点、令牌端点、JWK 密钥集 URI、支持的 scope 和算法等。这避免了手动配置端点 URL,实现了 OIDC 的"即插即用"。

Issuer URL 必须是完整的 HTTPS URL(本地开发可用 HTTP),不应包含尾部斜杠。例如 https://accounts.google.com 是正确的格式。工具会自动去除尾部斜杠并拼接 /.well-known/openid-configuration 路径。注意:Issuer URL 是 OIDC Provider 的身份标识,必须与实际签发令牌中的 iss 声明完全一致。

常见原因包括:(1) CORS 跨域限制 — 部分 OIDC Provider 的 discovery 端点未设置允许浏览器跨域访问的 CORS 头,此时浏览器会阻止请求。主流 Provider(Google、Microsoft、Apple)通常已支持 CORS;(2) URL 错误 — Issuer URL 拼写错误或路径不正确;(3) 网络问题 — 目标服务器不可达或超时(工具设置了 15 秒超时);(4) 返回非 JSON — 端点返回了 HTML 或其他格式。如遇 CORS 问题,可通过后端代理请求或使用 curl 命令行工具验证。

authorization_endpoint:发起授权请求,用户在此登录并授权;token_endpoint:用授权码换取令牌(ID Token + Access Token);userinfo_endpoint:用 Access Token 获取用户信息;jwks_uri:获取签名密钥的公钥集,用于验证 ID Token;end_session_endpoint:RP 发起登出;revocation_endpoint:撤销令牌;introspection_endpoint:验证令牌的有效性。并非所有端点都是必需的,取决于 Provider 的实现。

OAuth 2.0 是一个授权框架,用于授予第三方应用有限的资源访问权限;OpenID Connect 是在 OAuth 2.0 之上构建的身份认证协议,增加了 ID Token(JWT 格式)用于证明用户身份。OIDC 引入了标准化的 discovery 机制、用户信息端点、会话管理等,使得身份认证更标准化和可互操作。简言之:OAuth 2.0 解决"你能访问什么",OIDC 解决"你是谁"。

JWKS (JSON Web Key Set) URI 指向一个包含 Provider 公钥的端点。这些公钥用于验证 ID Token 的签名,确保令牌确实由该 Provider 签发且未被篡改。在验证 JWT 时,客户端从 JWKS 端点获取公钥,用其验证 JWT 的签名。密钥可能会轮换(rotation),因此客户端应定期刷新 JWKS 缓存。该端点的 URL 在 discovery 配置中的 jwks_uri 字段指定。

获取配置后,你可以:(1) 将端点 URL 配置到 OIDC 客户端库(如 Passport.js、Spring Security、IdentityServer 等);(2) 确认 Provider 支持的授权类型(grant_types_supported)和响应类型(response_types_supported)是否满足需求;(3) 检查支持的签名算法(id_token_signing_alg_values_supported)以确保客户端兼容;(4) 使用 JWKS URI 配置 JWT 验证中间件。复制按钮可帮你快速获取完整 JSON 或单个端点 URL。

OpenID Connect Discovery 规范定义了许多可选字段。Provider 根据其实现的功能集选择性地暴露这些字段。例如,end_session_endpoint 仅在支持 RP-initiated logout 时出现;registration_endpoint 仅在支持动态客户端注册时出现;backchannel_logout_supported 仅在使用反向通道登出时出现。字段数量少不代表 Provider 不完善,而是反映了其功能范围。核心必需字段包括 issuer、authorization_endpoint、token_endpoint、jwks_uri、response_types_supported、subject_types_supported 和 id_token_signing_alg_values_supported。