Azure AD - 如何获取 v2 访问令牌

问题描述 投票:0回答:2

使用 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”访问令牌。 我究竟做错了什么?

azure-active-directory
2个回答
12
投票

感谢您启发我,应用程序(代表资源)的注册方式存在差异。 基本上,差异本身是由应用程序清单中的“accessTokenAcceptedVersion”字段造成的。 最初它是“null”,但我已将其更改为“2”(如下所示)。 根据文档,“null”值也应该允许 v2 令牌 - 这是 AAD 方面的一个

问题

,处于“Open”状态。 感谢您在这个问题上的引导。

关于app的注册方式,确实是有区别的: - 如果是在 azure 门户中完成,则清单的“accessTokenAcceptedVersion”字段将设置为“null” - 如果是在应用程序注册门户 (

https://apps.dev.microsoft.com

) 中完成,则默认为“2” 如果不存在上面提到的问题(bug),这应该没有什么区别。


2
投票

在我这边,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:

© www.soinside.com 2019 - 2024. All rights reserved.