Physical Address
304 North Cardinal St.
Dorchester Center, MA 02124
Physical Address
304 North Cardinal St.
Dorchester Center, MA 02124
ISO/IEC 26131:2024定义了OpenID Connect Core 1.0协议,这是一个构建在OAuth 2.0协议之上的轻量级身份层。它使客户端(依赖方)能够基于授权服务器(OpenID提供者)执行的身份验证来验证终端用户的身份,并以可互操作、REST风格的方式获取用户基本档案信息。
OpenID Connect将身份验证实现为OAuth 2.0授权流程的扩展。客户端通过在授权请求中包含openid范围值来请求此扩展。身份验证结果以称为ID Token的JSON Web Token(JWT)形式返回,其中包含关于身份验证事件的声明(Claims)。
该标准定义了三种主要的身份验证流程,适用于不同的应用场景:
| 流程类型 | 来自授权端点的令牌 | 来自令牌端点的令牌 | 适用场景 |
|---|---|---|---|
| 授权码流程 | 授权码 | ID Token + 访问令牌 | 带后端的服务端Web应用 |
| 隐式流程 | ID Token + 访问令牌 | 无 | 单页应用(传统方式) |
| 混合流程 | 授权码 + 部分令牌 | 剩余令牌 | 高安全原生应用 |
OpenID Connect定义了用于传递用户信息的标准声明。声明是关于实体的事实信息,按逻辑分组为不同的范围:
| 范围 | 返回的声明 | 说明 |
|---|---|---|
openid |
sub(主题标识符) |
必选范围,表示OpenID Connect请求 |
profile |
姓名、头像、地区等 | 基本档案信息 |
email |
邮箱地址及验证状态 | 带验证状态的电子邮件地址 |
address |
地址(JSON对象) | 结构化邮政地址 |
phone |
电话号码及验证状态 | 带验证状态的电话号码 |
UserInfo端点是一个OAuth 2.0受保护资源,返回关于已认证终端用户的声明。当访问此端点时,客户端提供访问令牌,端点以JSON文档形式返回请求的声明。
openid profile email组合覆盖了大多数身份验证需求,同时避免过度暴露个人身份信息(PII)。ISO/IEC 26131:2024对安全性给予了大量关注。关键考量包括:
nonce参数将会话与ID Token关联,即使令牌被截获也能防止重放攻击。实施OpenID Connect集成时,请考虑以下工程最佳实践:
答:OAuth 2.0是一个授权框架,使用访问令牌授予资源访问权限。OpenID Connect是OAuth 2.0之上的身份验证层,通过ID Token添加了身份验证功能。使用OpenID Connect,您同时获得身份验证(用户是谁)和授权(用户可以访问什么)。
答:不可以。OpenID Connect是专门设计为OAuth 2.0的扩展,它利用OAuth 2.0的流程、端点和令牌机制。您必须拥有OAuth 2.0基础设施才能实施OpenID Connect。
答:在实际应用中,当OpenID提供者配置良好时,身份验证流程通常在一秒内完成。关键路径包括TLS握手、身份验证验证、JWT签名和令牌响应交付。使用CDN加速端点和优化JWK缓存可以显著降低延迟。
答:是的。带有PKCE的授权码流程专门为无法安全保存客户端密钥的移动和原生应用设计。对于HTTP能力有限的物联网设备,标准也支持更简化的配置文件。