【问题标题】:What Is The Difference Between idTokenClaims and idToken In Azure JWT?Azure JWT 中的 idTokenClaims 和 idToken 有什么区别?
【发布时间】:2021-03-30 05:51:17
【问题描述】:

当我使用 Azure AD 进行身份验证时,我得到一个看起来有点像这样的 JWT:

{
  "logout": "ƒ () {}",
  "login": "ƒ () {}",
  "authenticationState": "Authenticated",
  "accountInfo": {
    "account": {
      "idToken": {
        "exp": 1111111111,
        "nbf": 1111111111,
        "ver": "1.0",
        "iss": "https://corp.b2clogin.com/1234-hash-abcd/v2.0/",
        "sub": "1234-abc-123-1234-1234",
        "aud": "1234-abc-123-1234-1234",
        "nonce": "1234-abc-123-1234-1234",
        "iat": 1111111111,
        "auth_time": 1111111111,
        "name": "Joe Bloggs",
        "extension_Role": "Admin",
        "tfp": "B2C_1_signupsignin1"
      },
      "idTokenClaims": {
        "exp": 1111111111,
        "nbf": 1111111111,
        "ver": "1.0",
        "iss": "https://corp.b2clogin.com/1234-hash-abcd/v2.0/",
        "sub": "1234-abc-123-1234-1234",
        "aud": "1234-abc-123-1234-1234",
        "nonce": "1234-abc-123-1234-1234",
        "iat": 1111111111,
        "auth_time": 1111111111,
        "name": "Joe Bloggs",
        "extension_Role": "Admin",
        "tfp": "B2C_1_signupsignin1"
      }
    }
  }
}

如您所见,idTokenidTokenClaims 是相同的。

Azure 发送这两个部分有什么原因吗?

我找不到有关这些部分的任何 Microsoft 文档,以及您是否应该使用其中一个。

我对@9​​87654325@ 和extension_Role 感兴趣。有什么理由让我从一个部分取值而不是另一个部分?

出于我现在的目的,我可以使用其中任何一个。但是,我有兴趣找出这种重复的原因以及推荐使用的解释。

【问题讨论】:

标签: reactjs azure-active-directory jwt


【解决方案1】:

根据我的理解,它们是相同的。

idToken 应该是作为字符串的 jwt 令牌。但是在您提供的数据中,由于我们不知道的几个原因,它被解码为 json 声明。

idTokenClaims 是从idToken 解码的所有声明(属性)。

所以你可以使用它们中的任何一个,但我建议你使用idTokenClaims,因为我不确定idToken 下次是否不会被解码(它将是一个 jwt 令牌字符串)。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2017-03-15
    • 2015-10-10
    • 2017-04-05
    • 2020-11-12
    • 2016-04-08
    • 1970-01-01
    • 1970-01-01
    • 2021-12-31
    相关资源
    最近更新 更多