Azure ML认证报错:访问令牌发行方与订阅租户不匹配求助
解决Azure ML Client租户令牌不匹配错误
问题分析
错误提示显示获取的令牌所属租户与订阅关联租户不一致,即使浏览器认证成功或设置了环境变量仍触发问题,核心原因是凭证初始化时未明确指定订阅对应的正确租户ID,导致默认获取的令牌租户不匹配。
解决方案步骤
1. 获取订阅对应的正确租户ID
在Ubuntu终端执行Azure CLI命令(需先安装并通过az login登录):
az account show --query tenantId -o tsv
复制输出的租户ID,这是你当前Azure订阅绑定的租户ID(个人Microsoft账号订阅同样关联一个专属租户)。
2. 修改代码,显式指定租户ID
无论使用InteractiveBrowserCredential还是DefaultAzureCredential,都需要在初始化时传入正确的租户ID:
使用InteractiveBrowserCredential的修改代码
from azure.ai.ml import MLClient from azure.identity import InteractiveBrowserCredential # 替换为上一步获取的租户ID tenant_id = "xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxx" subscription_id = "你的订阅ID" resource_group = "你的资源组名" workspace = "你的工作区名" ml_client = MLClient( InteractiveBrowserCredential(tenant_id=tenant_id), subscription_id, resource_group, workspace )
使用DefaultAzureCredential的修改代码
from azure.ai.ml import MLClient from azure.identity import DefaultAzureCredential tenant_id = "xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxx" subscription_id = "你的订阅ID" resource_group = "你的资源组名" workspace = "你的工作区名" # 显式指定租户ID,也可确保环境变量AZURE_TENANT_ID为正确值 ml_client = MLClient( DefaultAzureCredential(tenant_id=tenant_id), subscription_id, resource_group, workspace )
3. 验证config.json的正确性
检查config.json中的tenant_id字段是否与上述获取的租户ID一致,若不一致则更新该字段。
补充说明
个人Microsoft账号的Azure订阅并非无租户,而是默认关联微软分配的专属租户。之前未指定租户ID时,凭证可能从缓存或默认配置中获取了错误的租户令牌,导致与订阅绑定的租户不匹配。显式指定租户ID可强制凭证从正确的租户获取令牌,解决认证错误。
内容的提问来源于stack exchange,提问作者Talal
相关产品推荐
相关产品推荐

