使用服务主体调用Azure Databricks API报AADSTS500011错误如何解决
核心报错根因
脚本中配置的Azure管理平面资源标识填写错误,是触发AADSTS500011报错的直接原因。
需要调整的配置项
- 修正
$apiEndpointUri变量取值,将原有值https://management.core.azure.com替换为标准Azure管理端资源标识https://management.azure.com/ - 补全脚本中所有空缺的必填参数:
$DataBricksResourceID:Databricks工作区在Azure中的全量资源ID,可在Azure门户对应工作区的「属性」页面查询,格式参考:/subscriptions/<你的订阅ID>/resourceGroups/<你的资源组名>/providers/Microsoft.Databricks/workspaces/<你的工作区名称>$tenantId:你的Azure AD租户ID$applicationId:用于认证的服务主体应用ID$VaultName:存储服务主体密钥的密钥保管库名称$KeyName:密钥保管库中存储服务主体密钥的密钥名称
- 权限校验补充:
- 执行脚本的账号需要具备对应密钥保管库的密钥读取权限
- 所用服务主体已添加到Databricks工作区权限组,且具备调用目标API的对应操作权限
修改后核心代码片段
# 修正后的Azure管理端资源标识 $apiEndpointUri = "https://management.azure.com/" # 补全后的必填参数示例 $DataBricksResourceID = "/subscriptions/xxxxxx-xxxx-xxxx-xxxx-xxxxxx/resourceGroups/xxxxxx/providers/Microsoft.Databricks/workspaces/xxxxxx" $tenantId = "xxxxxx-xxxx-xxxx-xxxx-xxxxxx" $applicationId = "xxxxxx-xxxx-xxxx-xxxx-xxxxxx" $VaultName = "你的密钥保管库名称" $KeyName = "你的密钥名称"
内容的提问来源于stack exchange,提问作者RealisticMagician
相关产品推荐
相关产品推荐

