OIDC (OpenID Connect) 通俗原理解析:你的互联网通用“身份证”

OIDC (OpenID Connect) 是一种身份认证协议。
通俗点说,这就是我们每天都在用的 “微信登录”“Google 登录”“Apple 登录”。它允许你在不向新应用透露密码的情况下,直接使用已有的可信账号登录。


1. 核心比喻:不需要在每家店都办会员卡

以前(没有 OIDC 的时候):
你每去一家新的健身房、理发店、超市,都得填表、设密码、办一张该店专属的会员卡。结果是你满口袋都是卡,还老忘记密码。

现在(有了 OIDC):
大家达成了一个共识:只认“支付宝”账号
你去一家新开的健身房,前台不需要你填表注册。你只要扫一下支付宝授权登录。

  • 支付宝:负责核实你是谁(因为你已经实名认证过了)。
  • 健身房:信任支付宝的核实结果,直接给你开门。

在这个过程中,健身房根本不知道你的支付密码,它只拿到了支付宝给的一个“通过凭证”。


2. OIDC 的三步走流程

假设你要登录“抖音”,但你不想注册新号,想用“微信登录”。

第一步:发起登录 (Redirect)

你在抖音上点击“微信登录”。抖音(APP)把你带到了微信(Provider)的授权界面。

  • 潜台词:抖音对微信说:“大哥,这人说是你的用户,麻烦你帮忙验一下身。”

第二步:用户认证 (Authenticate)

你在微信的界面输入密码、指纹或刷脸。
注意: 这个动作完全发生在微信“家里”。抖音只能在一边干等,它绝对看不见你的密码。

  • 潜台词:微信对用户说:“是你吗?刷个脸……好的,确认是本人。”

第三步:颁发证件 (ID Token)

微信验证通过后,把页面转回抖音,并顺手通过 URL 塞给抖音一张特殊的卡片,这张卡片就叫 ID Token

这张卡片(通常是 JWT 格式)上不仅有防伪签名,还写着:

  1. Subject: “这是用户 User123 (你的唯一标识)”
  2. Issuer: “这是微信签发的”
  3. Audience: “这是专门发给抖音用的”
  4. Expiration: “有效期 1 小时”

抖音拿到这张卡片,验一下微信的签名(防伪标),确认无误,就让你登录成功了。


3. 容易混淆:OIDC vs OAuth 2.0

很多人分不清它俩,因为 OIDC 其实是建立在 OAuth 2.0 之上的升级版。

  • OAuth 2.0 (授权 Authorization)

    • 核心物品: Access Token (钥匙)
    • 场景: 你允许“美图秀秀”读取你的“Google 相册”。
    • 比喻: 你给了美图秀秀一把代客泊车钥匙。这把钥匙只能开后备箱和点火(Access),美图秀秀拿着钥匙去干活。但美图秀秀不一定知道车主叫什么名字,它只认钥匙。
  • OIDC (认证 Authentication)

    • 核心物品: ID Token (身份证)
    • 场景: 你用“Google 账号”登录“美图秀秀”。
    • 比喻: Google 不仅给了钥匙(Access Token),还附赠了一张身份证 (ID Token),上面写着你的名字、头像、邮箱。美图秀秀拿着它,是为了认出你是谁

一句话总结区别:

  • OAuth 2.0 负责 “允许他干什么” (Access)。
  • OIDC 负责 “证明他是谁” (Identity)。

4. OIDC 的价值 (SSO 单点登录)

在企业环境(如算力中心、大公司)里,OIDC 是实现 SSO (Single Sign-On) 的神器。

如果你公司有 20 个内部系统(HR系统、Jira、GitLab、Alluxio…):

  • 没 OIDC:员工要背 20 组账号密码,入职离职极其实麻烦。
  • 有 OIDC:员工只要登录一次公司的主账号(比如 Okta 或 AD),手里拿着一张 ID Token,去这 20 个系统都是畅通无阻,实现“一处登录,处处通行”。
Logo

汇聚全球AI编程工具,助力开发者即刻编程。

更多推荐