Microsoft Entra ID:尽管将 accessTokenAcceptedVersion 设置为 2,但仍收到旧令牌版本

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

我正在使用 OAuth2 将 Microsoft Entra ID 与我的 Web 应用程序集成,以进行特定于我的租户的专用应用程序注册。尽管将清单中的

accessTokenAcceptedVersion
设置为
2
,我仍然收到版本 1 的访问令牌。这个问题阻碍了我根据需要验证和使用令牌的能力。

以下是我启动 OAuth2 授权的方法:

https://login.microsoftonline.com/{tenant-id}/oauth2/v2.0/authorize?scope=openid+profile+email&response_type=code&client_id={client-id}&redirect_uri={redirect-uri}&state={state}&code_challenge={code-challenge}&code_challenge_method=S256

获取授权代码后,我在令牌 v2 端点将其交换为令牌(我仔细检查过)。但是,我收到的访问令牌仍然是版本 1,并且

aud
设置为
00000003-0000-0000-c000-000000000000
,这似乎是 Microsoft Graph。 ID令牌似乎是版本2。

有人遇到过这个问题吗?如何确保我的应用程序收到指定的版本 2 令牌?任何帮助或建议将不胜感激。

azure oauth-2.0 openid-connect microsoft-entra-id azure-entra-id
1个回答
0
投票

正如评论中提到的,设置接受的令牌版本只会影响用于您的API的令牌。 如果您获得 MS Graph API 令牌,它会尊重 MS Graph 已定义的设置,而不是您定义的设置。

您需要在“公开 API 页面”下添加范围,并在身份验证时请求该范围。

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