azure - 如何将JWT版本更新到2.0?

标签 azure jwt azure-authentication angular-oauth2-oidc

通过 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。

enter image description here

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

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

enter image description here

接下来,您需要使用auth code flow获取Access Token,需要登录用户并获取授权码,然后使用授权码兑换Access Token。

enter image description here

解析访问 token ,它将显示 v2。

enter image description here

关于azure - 如何将JWT版本更新到2.0?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/65823524/

相关文章:

sql-server - 使用 Key Vault 和证书的 SQL Azure IaaS 加密

c# - 最新的 ADAL 无法生成不记名 token

playframework - 在 Play Framework 2.6 中使用 JWT 身份验证

java - 从 JWT token 中删除角色信息

laravel - 如何使用 Laravel-Lumen 框架检查 azure token (身份验证)

linux - Azure 策略错误 : CaseSensitiveDeploymentParameterNamesFound

mysql - 使用 Hibernate 实现 JWT Spring 安全 token 存储?

azure - 对多个后端服务的 Azure AD 用户进行身份验证

azure - 无法登录 Azure 门户

azure - Windows Azure Web App - 安排应用程序池回收