如何更新JWT版本到2.0?

How to update JWT version to 2.0?

在通过 login.microsoftonline.com 对自己进行身份验证后,我有一个来自 Azure 的 JWT,它的 iss 值为 https://sts.windows.net/...(经过一些研究,这似乎是由于"ver": 1.0 智威汤逊)。为了获得 https://login.microsoftonline.com/... 发布的 JWT,我更新了应用程序的清单,以便 accessTokenAcceptedVersion 设置为 2,而不是默认的 null

我等了 5 个多小时,但我仍然得到错误版本的令牌,我一直在用 "ver": 1.0"iss": "https://sts.windows.net/..." 获取 JWT。有没有我遗漏的步骤?

AuthConfig 的 scope 的值为 openid 并且我目前正在使用隐式流(将很快更改为授权代码流,但只有在 JWT 版本问题得到解决后.. )

提前致谢!

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

首先,您需要创建一个代表 api 的应用程序,然后公开受 Azure 保护的 api。

接下来,在 'API permissions' 下,让您的前端应用程序访问您的后端 api:

  • 在 'API permissions' 下单击 'Add permission',然后单击 'My APIs' 选项卡。
  • 找到您的后端应用程序和select合适的范围。
  • 点击'Add permissions'。
  • 为您的 API 授予管理员许可。

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

解析access token,会显示v2.