Azure AD JWT 中缺少 azp 声明

时间:2021-05-17 09:45:08

标签: azure-active-directory jwt

我已向 Azure AD 注册了一个应用程序,可以获取 JWT,但我收到了与 V1 JWT 相关的声明,根据 this 而我期待与 V2 JWT 相关的声明。

更具体地说,我想添加仅在 V2 下可用的 azp 声明。

我已经按照 these instructions 添加了 azp,但它不能作为可选声明添加。我的印象是我使用的是版本 2 应用程序,因为端点以 /V2 结尾,而且我还可以添加 ipaddr,据我所知,它仅适用于 V2 应用程序。

谁能指出我遗漏了什么?

1 个答案:

答案 0 :(得分:1)

访问令牌的版本与您用于请求令牌的端点无关,而是与您请求的资源相关。 ms graph api 的默认版本是 1.0 版本的令牌。如果您想获取 2.0 版本的令牌,您应该请求您的自定义 API。

首先需要创建一个代表api的应用,然后暴露Azure保护的api。

enter image description here

接下来,在“API 权限”下,授予前端应用程序访问后端 api 的权限:

  • 在“API 权限”下点击“添加权限”,然后点击 “我的 API”标签。
  • 找到您的后端应用程序并选择适当的范围。
  • 点击“添加权限”。
  • 为您的 API 授予管理员许可。

enter image description here

接下来,转到前端应用程序的清单并将 accessTokenAcceptedVersion attribute 设置为:2

enter image description here

接下来需要使用auth code flow获取访问令牌,需要先登录用户获取授权码,然后使用授权码兑换访问令牌。

>

enter image description here

解析令牌,它将显示 azp 声明和 v2.0 版本。

enter image description here