oauth-2.0 - Azure AD JWT token : how to see through which client secret it was granted

标签 oauth-2.0 jwt azure-active-directory payload

我有一个 Azure AD 应用程序并生成了两个客户端 key 。我可以使用每个 key 获取 JWT 访问 token (通过 client_credentials grant),但我还可以从 JWT token 中查看请求的客户端 key 吗?

如果我检查返回的 JWT token ,一些有效负载字段始终相同(audiss 等),而有些字段始终不同( iatnbfaio 等),但据我所知,没有任何信息可以识别所使用的客户端 key 。

这是一个示例有效负载:

{
  "aud": "https://graph.microsoft.com",
  "iss": "https://sts.windows.net/e402c5fb-58e9-48c3-b567-741c4cef0b96/",
  "iat": 1516886787,
  "nbf": 1516886787,
  "exp": 1516890687,
  "aio": "Y2NgYEjJqF0stqv73u41a6ZmxPEvBgA=",
  "app_displayname": "TravelAgencies",
  "appid": "ee8cf944-bf6f-42cf-ae30-6060412416a1",
  "appidacr": "2",
  "e_exp": 262800,
  "idp": "https://sts.windows.net/e402c5fb-58e9-48c3-b567-741c4cef0b96/",
  "oid": "bc430bc6-d9fb-4fa0-87e5-8b8803fcb222",
  "sub": "bc430bc6-d9fb-4fa0-87e5-8b8803fcb222",
  "tid": "e402c5fb-58e9-48c3-b567-741c4cef0b96",
  "uti": "1TgusyfGtECjErT0Kv4PAA",
  "ver": "1.0"
}

相关说明:aioe_exputi 字段的用途是什么?我找不到有关他们的任何信息。

最佳答案

您无法查看 token 是通过哪个客户端 key 颁发的。到底是通过什么 secret 来询问的原因是什么?

关于提供的 claim - 您可以检查 herehere不同的主张意味着什么。例如,iat、nbf 只是日期 - token 的颁发时间和有效性开始时间。

对于某些声明,例如aio,没有文档。但没有声称可以告诉您使用了哪个 secret 。

关于oauth-2.0 - Azure AD JWT token : how to see through which client secret it was granted,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49452093/

相关文章:

asp.net-core - 如何在 AspNetCore 中仅使用公钥验证使用 x509 签名的 JWT token

azure - 从 Azure Active Directory 访问所需的响应

oauth-2.0 - 使用服务帐户访问 AdSense Management API 时的 "User does not have an AdSense account"消息

oauth-2.0 - WSO2:端点是一个休息服务,有自己的 oauth2 服务。是否有可能在 WSO2 中为一个 API 禁用身份验证?

macos - 适用于 Mac 应用程序的 Instagram API

asp.net-core - 我们如何将 identityserver4 和 web api 集成到同一个项目(端口)中,而不是为每个项目创建不同的项目?

使用 JWT token 进行 Azure AD 身份验证

php - Laravel/JWT token token 何时被列入黑名单?

Azure 应用程序代理 COR

azure - graph.windows.net 上的 SSL 错误