OpenID Connect 是什么
OpenID Connect 1.0 是一个建立在 OAuth 2.0 协议上的身分层
允许 Client 确认终端用户基于授权服务器鉴权的身份
还可以让 Client 用 REST 风格的交互操作,获取终端用户的基础信息
OpenID Connect 允许所有类型的 Client(包括基于 Web、移动端、JavaScript 的 Client)
请求和接收关于鉴权会话和终端用户的信息
OpenID Connect 规范是可扩展的
允许参与者使用可选的特性,例如:身份信息加密、OpenID 提供者的发现机制、会话管理等等
OpenID Connect 与 OpenID 2.0 的区别
OpenID Connect 完成了许多 OpenID 2.0 的任务
不过比起 OpenID 2.0,OpenID Connect 提供了更友好的 API
并且可以被本地应用或移动端应用使用
OpenID Connect 为健壮的签名和加密定义了可选的机制
想要集成 OAuth 1.0a 和 OpenID 2.0,需要扩展才能完成
而 OpenID Connect 协议自己已经集成了 OAuth 2.0 的能力
OpenID Connect 规范
OpenID Connect 1.0 规范由下边这些文档组成:
- Core
定义了 OpenID Connect 的核心功能:- 建立在 OAuth 2.0 之上的鉴权流程
- 使用 Claim 交换终端用户信息
- Discovery (可选的)
定义了 Client 如何动态地发现 OpenID 提供者的信息 - Dynamic Registration (可选的)
定义了 Client 如何动态地向 OpenID 提供者注册 - OAuth 2.0 Multiple Response Types
定义了多种新的特定的 OAuth 2.0 响应类型 - OAuth 2.0 Form Post Response Mode
- RP-Initiated Logout
- Session Management
- Front-Channel Logout
- Back-Channel Logout
- OpenID Connect Federation
下边是两个 OpenID Connect 实现的指南
它们自己各自也是独立完整的、基于 Web 的依赖方实现的参考手册:
协议迁移规范:
可以查看 working group status page 了解 OpenID Connect 工作小组的工作情况
OpenID Connect 结构: