App注册报错AADSTS500011:租户显示为域名而非指定ID
问题与解决方案
问题描述
多次尝试注册应用并通过Python连接Power BI API,代码如下:
app_id = '670...' tenant_id = '065...' client_secret_value = 'YJr...' import requests import msal authority = f'https://login.microsoftonline.com/{tenant_id}' scopes = ['https://analysis.microsoft.net/powerbi/api/.default'] app = msal.ConfidentialClientApplication(app_id, authority=authority, client_credential=client_secret_value) result = None result = app.acquire_token_for_client(scopes=scopes)
严格按照视频操作至8分38秒,但触发AADSTS500011错误,提示租户为域名而非指定的长字符串ID。已确认是订阅所有者,添加了API权限并启用相关设置(等待15分钟以上),问题仍存在。
排查与解决步骤
- 核对
tenant_id的正确性:确认代码中的tenant_id是Azure AD租户的目录ID(长字符串格式),而非租户域名(如xxx.onmicrosoft.com)。可在Azure门户「Azure Active Directory」→「概述」页面复制该ID,避免手动输入错误。 - 检查应用注册的租户归属:确保注册的应用所在租户,与代码中
tenant_id对应的租户完全一致。若应用注册在错误租户下,即使ID输入正确也会触发错误。 - 验证API权限配置:确认添加的Power BI API权限为应用权限(非委派权限),且已完成「授予管理员同意」操作。仅添加权限未授予同意会导致令牌获取失败。
- 检查authority URL格式:确保URL为
https://login.microsoftonline.com/{tenant_id},无多余后缀或拼写错误(比如误写为login.microsoft.com)。 - 清除MSAL缓存:MSAL会缓存令牌和租户信息,旧缓存可能引发冲突。删除本地缓存文件(通常在
~/.msal目录)后重新运行代码。 - 确认租户Power BI服务状态:检查租户是否已启用Power BI服务,且账户拥有访问Power BI API的权限(作为订阅所有者通常具备,但需确认租户未限制API访问)。
内容的提问来源于stack exchange,提问作者David 54321
相关产品推荐
相关产品推荐

