通过 login.microsoftonline.com 对自己进行身份验证后,我有一个来自 Azure 的 JWT,其 iss
值为 https://sts.windows.net/...
(经过一些研究,这似乎是由于 JWT 的 "ver": 1.0
造成的)。为了获取由 https://login.microsoftonline.com/...
颁发的 JWT,我更新了应用程序的 list ,以便将 accessTokenAcceptedVersion
设置为 2
,不再是默认的 null
。
我等了 5 个多小时,但我仍然得到了错误版本的 token ,我不断使用 "ver": 1.0
和 "iss": "https: 获取 JWT//sts.windows.net/...”
。我是否缺少任何步骤?
AuthConfig 的 scope
的值为 openid
,我目前正在使用隐式流程(很快就会更改为身份验证代码流程,但仅在 JWT 版本问题之后)已修复..)
提前致谢!
最佳答案
访问 token 的版本与您用于请求 token 的端点无关,但与您请求的资源有关。 ms graph api默认版本是1.0
版本的token。如果您想获取 2.0
版本的 token ,您应该请求您的自定义 api。
首先,您需要创建一个代表 API 的应用程序,然后公开受 Azure 保护的 API。
接下来,在“API 权限”下,为您的前端应用程序授予对后端 API 的访问权限:
- 在“API 权限”下,点击“添加权限”,然后点击“我的 API”标签。
- 找到您的后端应用程序并选择适当的范围。
- 点击“添加权限”。
- 授予管理员对您的 API 的许可。
接下来,您需要使用auth code flow获取Access Token,需要登录用户并获取授权码,然后使用授权码兑换Access Token。
解析访问 token ,它将显示 v2。
关于azure - 如何将JWT版本更新到2.0?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/65823524/