如何查看 JWT 令牌 (OIDC) 是 Microsoft 身份平台的访问令牌还是 ID 令牌?

问题描述 投票:0回答:1

鉴于 Microsoft 身份平台颁发的 JWT 令牌 (OIDC),我如何查看它是访问令牌还是 ID 令牌?

我确信

scp
(范围)声明只会出现在访问令牌中,而
roles
(角色)声明可以同时出现在访问令牌和 ID 令牌中。但我不希望检查依赖于假设

azure security azure-ad-msal msal microsoft-entra-id
1个回答
0
投票

我同意@EnenDaveyBoy,ID令牌不包含范围,因此您不能使用ID令牌来验证/授权API。

  • 在 Azure 中,没有预定义的声明来了解令牌类型。

对于 sample,我通过 Postman 生成了令牌:

https://login.microsoftonline.com/TenantID/oauth2/v2.0/token

client_id:ClientID
grant_type:authorization_code
scope:https://graph.microsoft.com/.default openid
code:code
redirect_uri:https://jwt.ms
client_secret:ClientSecret

enter image description here

jwt.ms 中解码时的 访问令牌 如下所示:

enter image description here

  • 资源服务器读取访问令牌
  • 访问令牌由授权服务器颁发,包含用户、应用程序和令牌缩进的资源。
  • 使用此信息,它可以访问资源和 Web API。
  • 客户端使用访问令牌向 API 发出请求。

解码后的ID令牌如下所示:

enter image description here

  • ID 令牌由 OAuth 客户端读取。
  • ID 令牌包含经过身份验证的用户的声明或信息。
  • 客户端应用程序使用 ID 令牌来验证经过身份验证的用户信息。

参考:

ID 令牌和访问令牌:(auth0.com) by Andrea Chiarelli

© www.soinside.com 2019 - 2024. All rights reserved.