You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

使用MSAL Python获取令牌时遭遇AADSTS500011错误求助

解决AADSTS500011错误:客户端凭证流中Scope格式问题

问题核心原因

你遇到的AADSTS500011错误,本质是客户端凭证流(acquire_token_for_client)的Scope格式使用错误。在这个授权流中,Azure AD不接受带具体权限名称的Scope(如api://<application_uri>/USER.READ)——它会将整个字符串视为要访问的资源主体ID,但你的目标API的资源主体是api://<application_uri>,并非带权限后缀的字符串,因此导致“资源主体未找到”的错误。

而使用/.default可以正常生成令牌,是因为{resource_uri}/.default是客户端凭证流的标准Scope格式,它代表该客户端已被授予的所有应用权限的集合,Azure AD会自动匹配预先配置的权限。

解决方案步骤

  1. 修正Scope格式
    客户端凭证流必须使用{目标API的应用ID URI}/.default作为Scope,示例代码:

    result = app.acquire_token_for_client(scopes=["api://<application_uri>/.default"])
    

    确保<application_uri>与目标API在Azure门户中配置的应用ID URI完全一致,无拼写、大小写或格式错误。

  2. 确认应用权限配置

    • 登录Azure门户,进入客户端应用的API权限页面,确认已添加目标API的应用权限(注意是“应用权限”而非“委托权限”,客户端凭证流仅支持应用权限)。
    • 确保权限已获得管理员同意:在API权限列表中,权限状态需显示“已授予 <租户名> 管理员同意”,若未同意,点击“授予管理员同意”按钮完成操作。
  3. 验证资源主体存在性
    确认目标API已在你的租户中注册,且其应用ID URI与你在Scope中使用的完全一致。可以在目标API的概述页面查看应用ID URI。

额外排查点

  • 检查authority中的租户ID是否正确,确保请求发送到了正确的租户。
  • 确认客户端密钥(client_secret)有效,未过期或被撤销。

内容的提问来源于stack exchange,提问作者GnomeMage

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.23 06:13:13