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

使用服务主体进行Databricks账户级认证遇401错误求助

问题原因及解决方案

核心问题:OAuth2请求的Scope错误

你当前使用的scope: 'https://management.core.windows.net/.default'是Azure资源管理API的权限范围,并不适用于Databricks账户级SCIM API。Databricks账户API要求使用专属的服务主体权限范围。

修复步骤

  1. 修正Scope参数
    将token请求中的scope替换为Databricks官方指定的服务ID:

    'scope': '2ff814a6-3304-4ab8-85cb-cd0e6f879c1d/.default'
    

    这个ID是Azure Databricks服务的全局标识符,用于获取账户级API的访问权限。

  2. 验证服务主体权限
    确保你的服务主体已被授予账户管理员角色,且在Azure AD中已添加对Azure Databricks服务的SCIM相关权限(如User.ReadWrite.All、Group.ReadWrite.All)。

  3. 完整修正后的代码示例

    import requests
    
    # OAuth2 token endpoint
    token_url = f"https://login.microsoftonline.com/{tenant_id}/oauth2/v2.0/token"
    
    # Get the OAuth2 token with correct scope
    token_data = {
        'grant_type': 'client_credentials',
        'client_id': client_id,
        'client_secret': client_secret,
        'scope': '2ff814a6-3304-4ab8-85cb-cd0e6f879c1d/.default'
    }
    response = requests.post(token_url, data=token_data)
    # 添加错误处理,检查token获取是否成功
    if response.status_code != 200:
        raise Exception(f"Failed to get token: {response.json()}")
    access_token = response.json().get('access_token')
    
    # Use the token to list all groups
    headers = {
        'Authorization': f'Bearer {access_token}',
        'Content-Type': 'application/scim+json'
    }
    groups_url = f"https://accounts.azuredatabricks.net/api/2.0/accounts/{databricks_account_id}/scim/v2/Groups"
    groups_response = requests.get(groups_url, headers=headers)
    # 检查响应状态
    print(groups_response.status_code)
    print(groups_response.json())
    
  4. 额外注意事项

    • 确认代码中tenant_id、client_id、client_secret、databricks_account_id变量已正确赋值。
    • 若仍报错,检查PRD工作区网络是否允许访问login.microsoftonline.com和accounts.azuredatabricks.net。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.13 01:18:11