核心概念
OIDC 与 OAuth 2.0
了解现代身份认证的基石协议 OIDC (OpenID Connect) 以及授权协议 OAuth 2.0。
OIDC 与 OAuth 2.0 综述
如果您正在构建或集成现代化的身份系统,OAuth 2.0 和 OIDC (OpenID Connect) 是您绝对绕不开的两个最核心的行业标准协议。 YeeAuth 在底层全面实现了这两个协议,确保您的应用程序可以与全球任何标准的系统进行安全对接。
什么是 OAuth 2.0?
OAuth 2.0 诞生于 2012 年,是一个行业标准的授权 (Authorization) 协议。
它的核心设计初衷是:允许用户授权第三方应用访问他们存储在另外一个服务提供者上的信息,而不需要将用户名和密码提供给第三方应用。
经典场景: 您在使用一款“云打印”小程序,该程序需要访问您的 Google Drive 云盘来获取文件。 通过 OAuth 2.0:
- 云打印程序将您重定向到 Google。
- 您在 Google 登录并同意“授权该程序读取文件”。
- Google 给云打印程序颁发一个 Access Token。
- 云打印程序拿着这个 Access Token 去向 Google Drive API 请求文件。
在这个过程中,云打印程序只拿到了有限的权限(读取文件),而从来没有接触过您的 Google 密码。
什么是 OIDC (OpenID Connect)?
虽然 OAuth 2.0 非常成功,但它存在一个致命的问题:它只是一个授权协议,不是身份认证协议。 Access Token 只能用来调用 API,但它无法告诉第三方应用“这个用户到底是谁”。
为了解决这个问题,在 OAuth 2.0 的基础上,业界制定了 OIDC (OpenID Connect) 协议。 OIDC 是在 OAuth 2.0 之上构建的一个简单的身份层。
OIDC 带来了什么?
- ID Token:除了颁发 Access Token 外,OIDC 还会同时颁发一个 ID Token(采用 JWT 格式),它包含了用户的个人信息声明(如唯一 ID、姓名、邮箱)。
- /userinfo 接口:标准化的获取用户信息接口。
- 标准化的 Scopes:例如请求
openid、profile、email等标准权限范围。
总结:它们的关系
您可以把 OIDC 看作是 OAuth 2.0 的一个超级扩展包。
- OAuth 2.0 = 授权(给你一把去开保险柜的钥匙 Access Token)
- OIDC = OAuth 2.0 + 身份认证(给你一把钥匙,同时给你一张名片 ID Token 证明你是谁)
在 YeeAuth 中,当您配置前端登录时,绝大多数情况下您都在使用 OIDC 协议。只要您的请求中包含了 scope=openid,YeeAuth 就会自动按照 OIDC 标准流程进行响应。