如何解决如何将 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。
接下来,在“API 权限”下,授予前端应用程序访问后端 api 的权限:
- 在“API 权限”下点击“添加权限”,然后点击“我的 API”标签。
- 找到您的后端应用程序并选择适当的范围。
- 点击“添加权限”。
- 为您的 API 授予管理员许可。
接下来需要使用auth code flow获取访问令牌,需要先登录用户获取授权码,然后使用授权码兑换访问令牌。
>解析访问令牌,它会显示 v2。
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。