OpenID Connect(OIDC)是建立在 OAuth 2.0 協(xié)議之上的身份認(rèn)證和授權(quán)協(xié)議晰骑。它為 Web 應(yīng)用程序和移動(dòng)應(yīng)用程序提供了一種簡(jiǎn)化的适秩、標(biāo)準(zhǔn)化的方式來(lái)進(jìn)行身份驗(yàn)證和訪問(wèn)控制绊序。OIDC 旨在為開(kāi)發(fā)人員提供一種安全、互操作性強(qiáng)的身份驗(yàn)證解決方案秽荞。
在 OIDC 中骤公,ID Token(身份令牌)和 Access Token(訪問(wèn)令牌)是兩個(gè)不同的令牌,它們?cè)谏矸蒡?yàn)證和訪問(wèn)控制的流程中發(fā)揮不同的作用扬跋。
- ID Token(身份令牌):
作用: ID Token 用于在客戶端和授權(quán)服務(wù)器之間傳遞有關(guān)身份認(rèn)證的信息阶捆。它包含有關(guān)已經(jīng)進(jìn)行身份驗(yàn)證的用戶的信息,如用戶的身份標(biāo)識(shí)钦听、姓名洒试、電子郵件等。 頒發(fā)時(shí)間: 在身份驗(yàn)證成功后朴上,ID Token 會(huì)由授權(quán)服務(wù)器頒發(fā)給客戶端垒棋。 生命周期: 通常,ID Token 的生命周期較短痪宰,用于表示當(dāng)前用戶的身份叼架,并且不應(yīng)該被用于訪問(wèn)資源服務(wù)器。
- Access Token(訪問(wèn)令牌):
作用: Access Token 用于訪問(wèn)受保護(hù)的資源衣撬。一旦用戶被成功認(rèn)證并且授權(quán)乖订,客戶端可以使用 Access Token 來(lái)請(qǐng)求受保護(hù)資源,例如 API 端點(diǎn)淮韭。 頒發(fā)時(shí)間: 在用戶授權(quán)成功后垢粮,Access Token 會(huì)由授權(quán)服務(wù)器頒發(fā)給客戶端。 生命周期: Access Token 的生命周期較長(zhǎng)靠粪,允許客戶端在一段時(shí)間內(nèi)訪問(wèn)資源服務(wù)器蜡吧。
區(qū)別:
- 內(nèi)容差異: ID Token 包含關(guān)于用戶身份的信息,而 Access Token 包含有關(guān)訪問(wèn)權(quán)限的信息占键。
- 用途不同: ID Token 用于客戶端驗(yàn)證用戶身份昔善,Access Token 用于訪問(wèn)資源服務(wù)器上的受保護(hù)資源。
- 生命周期差異: 通常情況下畔乙,ID Token 的生命周期較短君仆,而 Access Token 的生命周期較長(zhǎng)。
使用場(chǎng)景:
當(dāng)您需要在客戶端上顯示用戶的身份信息時(shí)牲距,例如在 UI 中顯示歡迎消息或用戶名時(shí)返咱,您可以使用 ID Token。
當(dāng)客戶端需要通過(guò) API 請(qǐng)求受保護(hù)資源時(shí)牍鞠,客戶端應(yīng)使用 Access Token咖摹。
總體來(lái)說(shuō),ID Token 和 Access Token 是 OIDC 中兩個(gè)不同但互相補(bǔ)充的令牌類型难述,用于支持身份驗(yàn)證和資源訪問(wèn)萤晴。