OIDC是什么,为什么需要OIDC
什么是 OIDC
OIDC 的全称是 OpenID Connect,它是在 OAuth 2.0 之上构建的一个身份认证层
核心关系:OIDC 与 OAuth 2.0
-
OAuth 2.0:解决 "授权" 问题 → "这个应用能做什么?"
-
OIDC:解决 "认证" 问题 → "用户是谁?"
可以把 OIDC 理解为 OAuth 2.0 的 "增强版",专门用于用户身份认证。
一个简单的比喻
想象进入一个办公楼:
-
OAuth 2.0:保安给你一张门禁卡,可以进入特定楼层(授权访问资源)
-
OIDC:保安不仅给你门禁卡,还确认了你的员工身份,知道你的姓名、工号等信息(认证身份+授权访问)
OIDC 解决了什么问题
- 统一身份认证标准
在 OIDC 之前,每个网站都有自己的登录系统,第三方应用想要"使用微信登录"需要各自实现不同的集成方式。OIDC 提供了标准化的身份认证协议。
- 安全的用户信息获取
OIDC 引入了 ID Token(JWT格式),包含用户的基本身份信息,应用可以安全地解析和验证这些信息。
- 单点登录支持
用户在一个地方登录后,可以访问所有信任的关联应用,无需重复登录。
- 分离关注点 身份提供商:专门负责用户认证
应用:专注于业务逻辑,无需管理用户密码
OIDC 核心概念
| 概念 | 说明 | 类比 |
|---|---|---|
| ID Token | JWT格式的身份令牌,包含用户基本信息 | 身份证 |
| Access Token | 访问API的令牌(继承自OAuth 2.0) | 门禁卡 |
| UserInfo Endpoint | 获取用户详细信息的API端点 | 人事档案处 |
| Discovery | 自动发现OIDC配置的标准化方式 | 服务目录 |