核心端点
| 端点 | 描述 |
|---|---|
/.well-known/openid-configuration |
当前签发方的 OIDC 发现文档。 |
/.well-known/oauth-protected-resource |
XID 托管资源端点的 OAuth 受保护资源元数据。 |
/jwks |
实例公共签名密钥,包含当前生效和轮换中的密钥 ID。 |
/authorize |
授权端点支持 PKCE、state、nonce、PAR 和 Hosted Auth 交接。 |
/par |
使用一次性 request_uri 的推送授权请求。 |
/token |
支持授权码、刷新令牌、客户端凭据、设备码和令牌交换。 |
/userinfo |
Bearer 或 DPoP 访问令牌中的用户声明。 |
/end_session |
RP 发起登出,并使用已注册的登出后重定向。 |
协议要求
- PKCE 使用 S256。拒绝明文 PKCE。
- 重定向 URI 必须精确匹配。不接受通配符。
- 授权码只能使用一次。
- 刷新令牌每次使用都会轮换,重放会吊销整个令牌族。
- DPoP 绑定客户端在 token 和 resource 调用中必须提交有效 DPoP proof。Authorization request
dpop_jkt会绑定到 authorization code exchange。
支持等级
| 等级 | OAuth 和 OIDC 功能 |
|---|---|
| 已实现 | 授权代码、PKCE S256、刷新轮换、PAR、DPoP 证明和 dpop_jkt 绑定、动态客户端注册、ID 令牌、用户信息、混合响应类型、签名 JAR 请求对象、签名 JARM 响应、RAR resource_access 授权详细信息、令牌交换、mTLS 客户端身份验证、前通道和后通道注销、设备流、会话管理、CIBA、基于浏览器的应用程序配置文件门,以及FAPI 2.0 型材大门。 |
| 最少的实施 | OpenID Federation 仅公开实体元数据和注册边界。信任链解析、信任锚、策略处理和生产互操作性尚未实现。 |
| 计划中 | 共享信号、CAEP、RISC、GNAP、UMA、HEART、OpenID4VP 和 OpenID4VCI 公开返回显式 501 错误的保留路由。它们不是协议实现。 |
| 生产证据 | 本地实施和一致性检查不是生产认证。下游 SaaS OIDC 使用通用 OIDC 基线,但每个 SaaS 集成仍然需要真实的外部 L4 证据。 |
| 已废弃或不支持 | 隐式流、密码授权、plain PKCE 和通配符重定向。 |
角色边界
| XID 角色 | 当前公开状态 |
|---|---|
| 面向客户应用的 OIDC / OAuth 身份提供商 | 在本地和 Worker 路由中已实现,覆盖 authorization code、PKCE S256、PAR、DPoP、JAR、JARM、RAR、discovery、JWKS、token、userinfo、introspection 和 revocation。 |
| 上游企业 OIDC 依赖方 | 企业连接已 provider-ready。生产支持需要真实 IdP 配置和 callback L4。 |
| 社交 OAuth 依赖方 | GitHub、Google、Microsoft 账号和 Apple 已 provider-ready。提供商特定边界请参见社交登录。 |
| 下游 SaaS OIDC 身份提供商 | 通用 OIDC 基线已在本地可用。在生产支持声明之前,仍需 SaaS 专项应用模板和真实 SaaS L4。 |
客户端类型
| 客户端 | 推荐流程 |
|---|---|
| Web 应用 | 通过服务端交换令牌的授权码流程。 |
| SPA | 使用 PKCE S256 的授权码流程。 |
| 原生应用 | 使用 PKCE S256 和声明式重定向的授权码流程。 |
| 机器到机器 | 带作用域访问的客户端凭据。 |
受控或最小化的 OAuth 与 OIDC 扩展
| 等级 | 状态 |
|---|---|
| 断言授权 | 未启用 JWT bearer 和 SAML bearer 断言授权。注册会拒绝断言授权元数据,直到存在信任根。 |
| GNAP, UMA, HEART, OpenID4VP, OpenID4VCI | 仅暴露负路由和元数据存根。不支持的操作返回明确的501 unsupported_feature;没有声称支持功能协议。 |