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

Azure active directory Azure AD-如何获取v2访问令牌,azure-active-directory,Azure Active Directory,使用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

使用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
https://login.microsoftonline.com//oauth2/v2.0/authorize?client_id=&redirect_uri=https://localhost:44321/signin-oidc&response\U type=id\U令牌%20token&scope=openid%20api%3A%2F%2Fdev api网关%2FTLAS&response\U mode=form\U post&nonce=123
然而,我似乎得到了一个“v1”访问令牌。 我做错了什么


获取的令牌版本与受v1端点或v2端点保护的访问资源相关

在我这方面,API在v2端点中受到保护,因此它返回v2 access_令牌

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
https://login.microsoftonline.com//oauth2/v2.0/authorize?client_id=&redirect_uri=https://snv2app.azurewebsites.net&response_type=id_token+令牌&scope=openidapi://f3d966c0-517e-4e13-a5bb-9777a916b1a0/User.read&response_mode=fragment&nonce=123
和解析访问令牌:
感谢您告诉我,应用程序(代表资源)的注册方式存在差异。 基本上,差异本身是由应用程序清单中的“accessTokenAcceptedVersion”字段造成的。 最初它是“null”,但我已将其更改为“2”(如下所示)。

根据docs的说法,“null”值也应该允许v2代币——它是AAD方面的一个标记,处于“打开”状态

谢谢你在这个问题上的领导

关于应用程序的注册方式,确实存在差异: -如果是在azure portal中完成的,则清单的“accessTokenAcceptedVersion”字段设置为“null” -如果是在应用程序注册门户()中完成的,则默认为“2”
如果没有上面提到的问题(bug),这应该没有什么区别。

您是否包括了正确的范围?在我看来,这是一个不同的问题:他们无法获得访问令牌。我的问题是,我期望访问令牌“v2”,但我得到的是“v1”访问令牌。令牌的内容略有不同:@bandreas你在哪里运行了你的请求?@RonaldAbellano-我不理解你的问题:“我在哪里运行了我的请求”。无论如何,同时我的问题可能已经过时,如果AAD将切换到v2作为默认值。正如我所知,azure门户和应用程序注册门户应该没有区别。您可以在应用程序注册门户中注册应用程序(聚合应用程序-v2,Azure纯广告应用程序-v1),当您检查其清单时,您会发现v1应用程序没有
accessTokenAcceptedVersion
。但是,在Azure门户中,应用程序注册是针对v1应用程序的,应用程序注册(预览)是针对v2应用程序的,您可以在应用程序注册中检查v1应用程序清单,它也没有
accessTokenAcceptedVersion
。但是v2应用程序注册仍然是azure portal中的预览,如果您在应用程序注册(预览)中检查v1应用程序清单,则
accessTokenAcceptedVersion
为空,因此建议您不要在应用程序注册(预览)中检查v1应用程序清单。