单租户Azure AD应用调用v2令牌端点仍返回v1令牌的问题咨询
单租户应用获取V2.0令牌的问题解析与解决方案
问题原因
单租户应用默认情况下,即使调用V2令牌端点也会返回V1.0令牌,核心原因是应用注册的**accessTokenAcceptedVersion**配置项:
- 单租户应用创建时,该字段默认值为
null或1,Azure AD会据此返回V1.0令牌,不受调用端点版本影响。 - 多租户应用的该字段默认值为
2,因此无论调用V1还是V2端点,都会返回V2.0令牌。
解决步骤
要让单租户应用获取V2.0令牌,只需修改应用注册的清单配置:
- 登录Azure门户,进入目标应用注册页面。
- 切换到清单标签页,打开清单编辑器。
- 找到
accessTokenAcceptedVersion字段,将其值从null或1修改为2,保存更改。 - 调用V2令牌端点时,使用V2格式的请求参数:
- 用
scope参数替代V1的resource参数,例如传入api://{你的客户端ID}/access_as_user或https://graph.microsoft.com/.default这类V2风格的范围值。 - 保持使用V2令牌端点地址:
https://login.microsoftonline.com/{租户ID}/oauth2/v2.0/token
- 用
完成上述操作后,再次请求即可获取V2.0版本的令牌。
内容的提问来源于stack exchange,提问作者Manjeet
相关产品推荐
相关产品推荐

