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

使用REST API激活Databricks用户失败问题排查求助

修复Databricks SCIM API激活用户的问题

核心问题:Patch请求体格式错误

你的请求中active字段的value格式不符合SCIM规范,不需要用数组嵌套对象,直接传入布尔值即可。另外,请求头缺少Content-Type: application/json,这会导致服务器无法正确解析请求体(即使你用了json.dumps)。

修正后的代码

import requests
import json

# 正确的Patch请求体
run_update = {
  "schemas": [ "urn:ietf:params:scim:api:messages:2.0:PatchOp" ],
  "Operations": [
    {
      "op": "replace",
      "path": "active",
      "value": True  # 直接传布尔值,或字符串"true"也可
    }
  ]
}

headers = {
    "Authorization": "Bearer <你的token>",
    "Content-Type": "application/json"  # 必须添加这个头
}

# 替换<userid>为实际的SCIM用户ID,不是用户名
response = requests.patch(
    f"{host}/api/2.0/preview/scim/v2/Users/<userid>",
    data=json.dumps(run_update),
    headers=headers
)

# 打印响应内容确认结果
print(response.status_code)
print(response.json())

其他排查方向

  • 检查用户ID是否正确:确保你用的是SCIM API返回的id字段值,不是用户名或邮箱。可以通过GET /api/2.0/preview/scim/v2/Users接口确认目标用户的ID。
  • 外部身份提供商管控:如果用户是从Azure AD、Okta等IDP同步过来的,Databricks的用户状态会被IDP的设置覆盖。此时需要在IDP中将用户状态设为启用,再重新同步到Databricks。
  • 验证响应内容:即使返回200状态码,也要检查响应体中的active字段是否已更新。如果仍未变更,可能是服务器端的权限问题(确保你的token拥有users/update权限)。
  • 替代方法:PUT请求:如果Patch还是不生效,可以尝试用PUT请求全量更新用户信息:
# PUT请求示例
user_data = {
    "schemas": ["urn:ietf:params:scim:schemas:core:2.0:User"],
    "active": True,
    # 保留用户其他原有字段,比如userName、emails等,避免覆盖丢失
    "userName": "user@example.com",
    "emails": [{"value": "user@example.com"}]
}

response = requests.put(
    f"{host}/api/2.0/preview/scim/v2/Users/<userid>",
    data=json.dumps(user_data),
    headers=headers
)

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.06 13:24:56