如何将 JWT 版本更新到 2.0?

问题描述

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

我等了 5 个多小时,但还是得到了错误版本的令牌,我一直在获取带有 null"ver": 1.0 的 JWT。有没有我遗漏的步骤?

AuthConfig"iss": "https://sts.windows.net/..." 的值为 scope,我目前正在使用隐式流程(很快将更改为身份验证代码流程,但仅在 JWT 版本问题得到修复之后..)

提前致谢!

解决方法

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

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

enter image description here

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

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

enter image description here

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

>

enter image description here

解析访问令牌,它会显示 v2。

enter image description here