身份提供商元数据

OIDC Discovery读懂声明,核对变更

粘贴发现文档的 JSON 内容;开启对比后可加入第二份配置,查看各自的字段报告与差异。

OIDC Discovery

发现文档 A

分析仅在当前标签页进行,不上传、不抓取远程内容,也不保存输入。

字段报告

请粘贴发现文档,或载入示例。

选项

按输入原文同时比对两份文档;留空则不核对外部期望值。

请粘贴发现文档,或载入示例。

这里只检查元数据,不验证服务器身份、端点可达性或令牌签名。

接入登录时,发现文档能被解析,并不意味着客户端读到了正确的配置。OIDC Discovery 将 issuer、端点和能力声明拆成可定位的字段报告,帮助区分缺少必需字段、地址格式错误以及期望发行者不匹配,避免把不同原因都归为同一条登录失败。

部署前后拿到两份 OIDC 配置时,可以直接比较原文所表达的结构。报告保留未知扩展字段,也保留大整数与小数的数字文本;无需先手工排序,更不会为了得到一个结果而替提供商补写默认字段。

为什么使用 OIDC Discovery 查看工具

让原文与诊断对应起来

OIDC Discovery 按发行者、端点、算法和能力分组展示声明。缺失字段仍占据报告中的位置,无法判断的扩展则标为未检查。点击行列位置即可回到输入,查看错误来自哪条配置,而不是根据一个笼统的成功标志推断远端服务已经正常。

一份配置文档分流到发行者、端点、算法和密钥地址四类报告卡片

比较一次部署真正改了什么

把旧配置放在 A、新配置放在 B,各自的检查报告与 A 到 B 的差异分开查看。嵌套字段用 JSON Pointer 路径标记,签名算法移除、令牌端点调整、扩展项新增都能逐项核对,便于把配置变更与出现问题的版本对应起来。

两份配置中对应行的新增、移除和修改标记

三个容易忽略的检查方法

01

期望值要来自客户端配置

可选的期望 issuer 同时作用于两份文档,比较时不去尾斜杠、不改大小写、不补默认端口。如果两个环境的发行者本来就不同,请留空这个选项,直接阅读差异,不要为了消除错误随意改写期望值。

02

手动模式适合连续调整

自动分析在修改停顿 350 毫秒后执行。关闭开关后显示分析按钮,并支持 Ctrl/Cmd + Enter。修改任一输入或期望值,旧报告立刻过期,复制与下载暂时禁用,防止带走上一次的结论。

03

分别看报告,再看变更

对比模式中用文档 A、文档 B 查看各自的问题,再切换差异了解变化方向。字段位置可以跳回对应编辑器。长列表每次增加 50 条,导出始终包含完整内容,不受当前展开数量限制。

从字段到差异的检查范围

必需字段与条件要求

检查 issuer、授权端点、JWKS URI、响应类型、subject 类型和 ID Token 签名算法。只有响应类型和显式 grant 声明都表明仅使用隐式流时,才允许省略令牌端点。缺失的可选参数不会被偷偷补进输入。

端点格式与精确发行者

协议端点必须是绝对 HTTPS 地址,拒绝凭据、空白、片段和无法解析的地址;issuer 还不能带查询部分。比较期望值时使用原始字符串。端点与 issuer 位于不同主机可以是正常配置,不以同域作为通过条件。

算法和能力声明

查看签名、加密、响应类型、grant、scope 和布尔能力。ID Token 算法列表必须含 RS256,出现 none 会提醒其流程限制;客户端认证签名算法中的 none 则报错。未知算法名称保留展示,不据此宣称运行时支持。

无损的嵌套对比

复用无损 JSON 引擎,避免大整数和精细小数经浮点数转换后变值。差异路径正确转义斜杠与波浪号,对象忽略键排列,数组按位置比较。新增、删除和修改分别标记,缺失字段也不会与 null 混为一谈。

结论的边界与输入限制

不执行在线认证流程
这里只分析粘贴文本,不获取发现文档、不打开端点,也不交换授权码、请求用户信息或注册客户端。无法从这份文本判断网络是否可达、TLS 证书是否可信或浏览器的 CORS 请求是否成功。
密钥地址不是验签结果
JWKS URI 只是提供商声明的密钥集位置。查看或复制它不代表已获取密钥,更不代表 JWT 签名通过。令牌解码与验签应进入相应工具,并使用可信来源的密钥及正确的 issuer、audience 等约束。
通过只针对已覆盖的检查
已识别字段按类型和本页列出的规则检查;说明文档及策略地址只查非空字符串,其他扩展保留为未检查。scopes_supported 未列出 openid 时只提醒,因为支持的 scope 可以不全部公布。元数据检查不是完整协议认证。
严格 JSON 与容量上限
每份输入最多 100,000 字符、500 个顶层字段,嵌套上限 100 层、节点上限 50,000 个。拒绝重复键、注释和尾随逗号。最多生成 5,000 处差异,期望 issuer 最多 4,096 字符;超限不输出部分成功结论。
不会自动修复或合并
数组换序也算变化,即使某个提供商把它视为无序集合。100 与 1e2 等数值相等写法可视为相同。工具不推断认证行为是否等价,不合并配置、不排序写回;示例覆盖和清空已有输入前会先预览,并支持撤销。

OIDC Discovery 常见问题

Issuer URL 的格式有什么要求?

它应是绝对 HTTPS 地址,可以有端口和路径,但不能有查询或片段。本工具还拒绝内嵌凭据与非法空白。issuer 与客户端配置的标识要逐字一致;尾斜杠、显式端口和路径差异不会被自动消除。

为什么请求失败或提示网络错误?

在线获取发现文档可能受地址、证书、代理、权限或 CORS 配置影响。本页没有远程请求功能,请通过现有排障方式获取 JSON 再粘贴。文本检查通过只能说明已覆盖的字段规则通过,不能证明客户端可以访问该服务。

配置中的各个端点分别有什么用途?

authorization_endpoint 用于发起授权,token_endpoint 用于令牌相关请求,userinfo_endpoint 用于读取用户声明;jwks_uri 指向公开密钥集。报告展示这些声明与格式问题,不向这些地址发送任何协议请求。

什么是 JWKS URI?为什么它很重要?

jwks_uri 告诉客户端在哪里获取用于验签的公开密钥集。地址并不固定为某个 well-known 路径,应以提供商文档中的声明为准。本工具可以复制有效格式的地址,但不会获取密钥或判断签名是否有效。

为什么有些提供商的配置字段比较少?

有些字段必需,有些只在相应流程下要求,有些则可选或允许不完整公布。例如 scope 列表可能省略已支持的项目。不要单纯按字段数量判断配置好坏,应结合字段报告与实际客户端所用的功能核对。

发现计算或校验问题?

带着明确的字段结论继续排障

使用 OIDC Discovery 区分元数据问题与需要真实协议请求才能验证的行为。将报告与对应配置版本一起留存,便于下一次部署时准确比较。