【问题标题】:Azure AD - how to obtain v2 access tokenAzure AD - 如何获取 v2 访问令牌
【发布时间】:2019-01-04 22:21:13
【问题描述】:

使用 Azure AD、OIDC 隐式流,我可以从 v2 端点获取访问令牌。 我使用的授权端点如下所示:

https://login.microsoftonline.com/<tenant-id>/oauth2/v2.0/authorize?client_id=<client-id>&redirect_uri=https://localhost:44321/signin-oidc&response_type=id_token%20token&scope=openid%20api%3A%2F%2Fdev-api-gateway%2FAtlas&response_mode=form_post&nonce=123

然而,我似乎得到了一个“v1”访问令牌。 我做错了什么?

【问题讨论】:

  • 您是否包含正确的范围? stackoverflow.com/questions/45852984/…
  • 据我所知,这是一个不同的问题:他们无法获得访问令牌。我的问题是我期待一个访问令牌'v2',但我得到一个'v1'访问令牌。令牌内容略有不同:docs.microsoft.com/ro-ro/azure/active-directory/develop/…
  • @bandreas 你在哪里运行你的请求?
  • @RonaldAbellano - 我不明白你的问题:“我在哪里运行我的请求”。无论如何,如果 AAD 默认切换到 v2,我的问题可能已经过时了。

标签: azure-active-directory


【解决方案1】:

感谢您告诉我在如何应用程序(代表资源)注册方面存在差异。 基本上,差异本身是由应用程序清单中的“accessTokenAcceptedVersion”字段决定的。 最初它是“null”,但我已将其更改为“2”(如下所示)。

根据文档,“null”值也应该允许 v2 令牌 - 它是 AAD 一侧的 issue,处于“打开”状态。

感谢您在这个问题上的领导。

关于应用的注册方式,确实有区别: - 如果在 azure 门户中完成,则清单的“accessTokenAcceptedVersion”字段设置为“null” - 如果在应用注册门户 (https://apps.dev.microsoft.com) 中完成,则默认为“2” 如果没有上面提到的问题(错误),这应该没有什么不同。

【讨论】:

  • 据我所知,azure 门户和应用注册门户应该没有区别。您可以在应用注册门户中注册一个应用(Converged applications-v2,Azure AD only applications-v1),当您检查其清单时,您会发现 v1 应用没有 accessTokenAcceptedVersion
  • 但是,在azure门户中,应用注册是针对v1应用的,应用注册(预览版)是针对v2应用的,您可以在应用注册中查看v1应用清单,它也没有@ 987654326@。但是 v2 应用注册在 azure 门户中仍然是预览,如果您在应用注册(预览)中检查 v1 应用清单,accessTokenAcceptedVersion 为空,因此建议您不要在应用注册(预览)中检查 v1 应用清单。
【解决方案2】:

获取的token版本与你的受v1端点或v2端点保护的访问资源有关。

在我这边,API 在 v2 端点中受到保护,因此它返回了 v2 access_token。

https://login.microsoftonline.com/<tenant-id>/oauth2/v2.0/authorize?client_id=<client-id>&redirect_uri=https://snv2app.azurewebsites.net&response_type=id_token+token&scope=openid api://f3d966c0-517e-4e13-a5bb-9777a916b1a0/User.read&response_mode=fragment&nonce=123

并解析 access_token:

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2019-05-15
    • 1970-01-01
    • 2021-05-26
    • 2022-01-05
    • 2023-04-04
    • 2020-12-21
    • 1970-01-01
    • 2021-10-08
    相关资源
    最近更新 更多