azp 声明从 Azure AD JWT 中丢失

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

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

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

我已按照这些说明添加 azp,但无法将其添加为可选声明。我的印象是我正在使用版本 2 应用程序,因为端点以 /V2 结尾,而且我还可以添加 ipaddr,据我所知,该 ipaddr 仅适用于 V2 应用程序。

任何人都可以指出我缺少的东西吗?

azure-active-directory jwt
2个回答
3
投票

访问令牌的版本与您用于请求令牌的端点无关,而是与您请求的资源有关。 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
属性设置为:
2

enter image description here

接下来,您需要使用auth code流程获取access token,这需要您登录用户并获取授权码,然后使用授权码兑换access token。

enter image description here

解析token,会显示

azp
声明和v2.0版本。

enter image description here


0
投票

除了完成 Carl Zhu 提供的步骤之外,我还必须确保我正在使用的 API 设置为返回访问令牌的 v2。

在公开 API 的应用程序注册清单中,确保将

requestedAccessTokenVersion
设置为
2

Setting manifest requestedAccessTokenVersion

设置此选项后,我收到的 JWT 包含

azp
声明,并且还有
ver = 2.0

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