OAuth 2.0 解决授权问题(访问什么资源),OpenID Connect(OIDC)在其之上补充身份认证(你是谁)。
一、职责划分
- OAuth 2.0:颁发 Access Token,用于访问受保护资源
- OIDC:在 OAuth 2.0 上增加 ID Token(JWT 格式),携带用户身份信息
二、OIDC 授权流程
text
1. 客户端重定向至 /authorize?scope=openid%20profile
2. 用户认证后回调携带 code
3. 客户端用 code 换取 access_token + id_token
4. 验证 id_token 签名、iss、aud、exp
5. 从 id_token 中读取 sub、email、name 等声明ID Token 的 sub 字段是用户唯一标识,aud 必须等于客户端 ID,iss 必须匹配授权服务器。切勿将 Access Token 当作身份凭证使用,其格式与语义均不保证可解析。