什么是 OpenID Connect?现代身份认证的标准协议

在你使用 Google、微信、GitHub 等第三方登录网站时,你可能注意到登录后不仅获得了授权,还能获取用户名、头像甚至电子邮箱。这种在“授权”基础上获取“身份信息”的机制,就是由 OpenID Connect(OIDC) 实现的。本文将带你全面了解 OpenID Connect 是什么、它与 OAuth 2.0 的关系、核心流程及实际应用价值。


一、OpenID Connect 是什么?

OpenID Connect(简称 OIDC) 是一个基于 OAuth 2.0 协议构建的 身份认证协议(Authentication Protocol)。它允许客户端在获取授权的同时,安全地获得用户身份信息(如用户ID、昵称、邮箱、头像等),并且提供标准化的登录流程和接口。

简而言之,OAuth 2.0 是“你能不能访问资源”,OpenID Connect 是“你是谁”


二、OIDC 与 OAuth 2.0 的关系

项目OAuth 2.0OpenID Connect
类型授权框架认证协议
目标授权访问资源确认用户身份
返回结果Access TokenAccess Token + ID Token
用户信息通常需额外接口获取内置支持 /userinfo 接口

OIDC 是 OAuth 2.0 的扩展和补充,专注于“身份认证”这一环节。


三、OIDC 的关键术语

  • ID Token:一段 JWT 格式的身份令牌,包含用户身份的声明(Claims),如 sub(用户ID)、emailname 等。
  • Access Token:用于访问受保护资源(如API)的令牌,与 OAuth 2.0 相同。
  • UserInfo Endpoint:OIDC 定义的标准接口,客户端可用 Access Token 请求详细用户资料。
  • Issuer(iss):签发 ID Token 的服务方,如 https://accounts.google.com

四、OIDC 的典型登录流程

  1. 用户点击“使用XX账号登录”

    • 客户端将用户跳转至认证服务器(如 Google)进行身份验证。
  2. 用户登录并授权

    • 用户确认允许第三方应用访问自己的基本信息。
  3. 返回授权码

    • 授权服务器跳转回客户端,并附带一次性授权码。
  4. 换取 Token

    • 客户端用授权码获取 Access Token 和 ID Token。
  5. 解析 ID Token

    • 客户端验证签名、解析 Token,获得用户身份信息。
  6. 获取用户资料(可选)

    • 客户端使用 Access Token 调用 /userinfo 接口,获取完整的用户信息。

五、ID Token 的结构

ID Token 是一个标准的 JWT(JSON Web Token),结构如下:

Header.Payload.Signature

其中 Payload 中包含如下声明(Claims):

{
  "iss": "https://openid.example.com",
  "sub": "1234567890",
  "aud": "client123",
  "exp": 1688888888,
  "iat": 1688880000,
  "name": "Alice",
  "email": "alice@example.com"
}
  • sub:用户唯一 ID
  • aud:接收方(客户端 ID)
  • exp:过期时间
  • iat:签发时间
  • emailname:可选信息

六、OIDC 的优势

  • 标准化身份认证协议
    • 易于集成、文档完善、兼容主流认证平台。
  • 跨平台、跨设备
    • Web、移动 App、小程序等统一身份认证方式。
  • 保护用户隐私
    • 用户可明确授权范围,如只公开昵称、不公开邮箱。
  • 安全性强
    • 基于 JWT 签名验证,支持 HTTPS、安全跳转、防 CSRF 等机制。
  • 无密码登录
    • 客户端无需直接处理密码,减少被盗风险。

七、常见应用场景

  • 第三方社交账号登录(微信/QQ/Google 登录)
  • 多平台统一身份认证(企业 SSO、教育平台)
  • 支持 OAuth 的 SaaS 平台扩展身份识别功能
  • 跨系统账号打通(门户、CRM、ERP 等)

八、支持 OpenID Connect 的主流平台

平台描述
Google支持 OIDC 登录及用户资料获取
Microsoft Azure AD提供企业级身份认证与权限管理
Auth0第三方身份认证平台,支持 OIDC
Okta企业 SSO 解决方案,兼容 OIDC
Apple ID / 微信开放平台实际采用 OIDC 标准流程

九、OIDC 与 OpenID(旧版)区别

  • OpenID Connect 是新一代标准,基于 OAuth 2.0 构建,现代系统首选。
  • 旧版 OpenID(1.0/2.0) 早期的分布式身份认证协议,已逐步淘汰。

十、总结

OpenID Connect 是现代身份认证的标准协议,完美结合了 OAuth 的授权机制与 JWT 的自包含结构,让第三方应用可以在无需处理密码的前提下,获取用户身份并确保安全性。它已经成为 社交登录、企业 SSO、统一身份平台 等系统的首选解决方案。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值