SCIM API (ServicePrincipals)

重要

此功能目前以公共预览版提供。

可以通过 SCIM (ServicePrincipals) 在 Azure Databricks 中管理 Azure Active Directory 服务主体

要求

你的 Azure Databricks 帐户必须具有 Azure Databricks 高级计划

获取服务主体

端点 HTTP 方法
2.0/preview/scim/v2/ServicePrincipals GET

在 Azure Databricks 工作区中检索所有服务主体的列表。

由非管理员用户调用时,仅返回用户名、用户显示名称和对象。

示例请求

GET /api/2.0/preview/scim/v2/ServicePrincipals  HTTP/1.1
Host: <databricks-instance>
Accept: application/scim+json
Authorization: Bearer dapi48…a6138b

可以使用筛选器指定服务主体的子集。 例如,可以将 eq(“等于”)筛选器参数应用到 applicationId 以检索特定服务主体:

GET /api/2.0/preview/scim/v2/ServicePrincipals?filter=applicationId+eq+b4647a57-063a-43e3-a6b4-c9a4e9f9f0b7  HTTP/1.1
Host: <databricks-instance>
Accept: application/scim+json
Authorization: Bearer dapi48…a6138b

在具有大量服务主体的工作区中,可以从请求中排除属性以提高性能。

GET /api/2.0/preview/scim/v2/ServicePrincipals?excludedAttributes=entitlements,groups  HTTP/1.1
Host: <databricks-instance>
Accept: application/scim+json
Authorization: Bearer dapi48…a6138b

按 ID 获取服务主体

端点 HTTP 方法
2.0/preview/scim/v2/ServicePrincipals/{id} GET

在给定 Azure Databricks ID 的情况下,从 Azure Databricks 工作区中检索单个服务主体资源。

示例请求

GET /api/2.0/preview/scim/v2/ServicePrincipals/7535194597985784  HTTP/1.1
Host: <databricks-instance>
Accept: application/scim+json
Authorization: Bearer dapi48…a6138b

添加服务主体

端点 HTTP 方法
2.0/preview/scim/v2/ServicePrincipals POST

在 Azure Databricks 工作区中添加服务主体。 服务主体计入每个工作区 10000 个用户的限制。

请求参数遵循标准 SCIM 2.0 协议。

请求应包含以下属性:

  • schemas:设置为 urn:ietf:params:scim:schemas:core:2.0:ServicePrincipal
  • applicationId:Azure AD主体的应用程序 ID
  • displayName:可选

示例请求

POST /api/2.0/preview/scim/v2/ServicePrincipals HTTP/1.1
Host: <databricks-instance>
Authorization: Bearer dapi48…a6138b
Content-Type: application/scim+json
{
  "schemas":[
    "urn:ietf:params:scim:schemas:core:2.0:ServicePrincipal"
  ],
  "applicationId":"b4647a57-063a-43e3-a6b4-c9a4e9f9f0b7",
  "displayName":"test-service-principal",
  "groups":[
    {
       "value":"123456"
    }
  ],
  "entitlements":[
    {
       "value":"allow-cluster-create"
    }
  ]
}

按 ID 更新服务主体 (PATCH)

端点 HTTP 方法
2.0/preview/scim/v2/ServicePrincipals/{id} PATCH

使用对特定属性(不可变属性除外)的操作来更新服务主体资源。 建议使用 PATCH 方法(而不是 PUT 方法)来设置或更新用户权利。

请求参数遵循标准 SCIM 2.0 协议,并依赖于 schemas 属性的值。

添加权利

示例请求

PATCH /api/2.0/preview/scim/v2/ServicePrincipals/654321  HTTP/1.1
Host: <databricks-instance>
Content-Type: application/scim+json
Authorization: Bearer dapi48…a6138b
{
  "schemas":[
    "urn:ietf:params:scim:api:messages:2.0:PatchOp"
  ],
  "Operations":[
    {
      "op":"add",
      "path":"entitlements",
      "value":[
        {
           "value":"allow-cluster-create"
        }
      ]
    }
  ]
}

删除权利

示例请求

PATCH /api/2.0/preview/scim/v2/ServicePrincipals/654321  HTTP/1.1
Host: <databricks-instance>
Content-Type: application/scim+json
Authorization: Bearer dapi48…a6138b
{
  "schemas":[
    "urn:ietf:params:scim:api:messages:2.0:PatchOp"
  ],
  "Operations":[
    {
      "op":"remove",
      "path":"entitlements",
      "value":[
        {
           "value":"allow-cluster-create"
        }
      ]
    }
  ]
}

添加到组

示例请求

PATCH /api/2.0/preview/scim/v2/ServicePrincipals/654321  HTTP/1.1
Host: <databricks-instance>
Content-Type: application/scim+json
Authorization: Bearer dapi48…a6138b
{
  "schemas":[
    "urn:ietf:params:scim:api:messages:2.0:PatchOp"
  ],
  "Operations":[
    {
      "op":"add",
      "path":"groups",
      "value":[
        {
           "value":"123456"
        }
      ]
    }
  ]
}

从组中删除

示例请求

PATCH /api/2.0/preview/scim/v2/Groups/<group_id>  HTTP/1.1
Host: <databricks-instance>
Content-Type: application/scim+json
Authorization: Bearer dapi48…a6138b
{
  "schemas":[
    "urn:ietf:params:scim:api:messages:2.0:PatchOp"
  ],
  "Operations":[
    {
      "op":"remove",
      "path":"members[value eq \"<service_principal_id>\"]"
    }
  ]
}

按 ID 更新服务主体 (PUT)

端点 HTTP 方法
2.0/preview/scim/v2/ServicePrincipals/{id} PUT

覆盖整个服务主体资源,不可变的 和 applicationIdid 除外。

使用 PATCH 方法 添加、更新或删除单个属性。

重要

必须在请求中包括 schemas 具有确切值 的属性 urn:ietf:params:scim:schemas:core:2.0:ServicePrincipal

示例请求

添加权利

PUT /api/2.0/preview/scim/v2/ServicePrincipals/654321 HTTP/1.1
Host: <databricks-instance>
Authorization: Bearer dapi48…a6138b
Content-Type: application/scim+json
{
  "schemas":[
    "urn:ietf:params:scim:schemas:core:2.0:ServicePrincipal"
  ],
  "applicationId":"b4647a57-063a-43e3-a6b4-c9a4e9f9f0b7",
  "displayName":"test-service-principal",
  "groups":[
    {
       "value":"123456"
    }
  ],
  "entitlements":[
    {
       "value":"allow-cluster-create"
    }
  ]
}

删除所有权利与组

删除所有权利与组是停用服务主体的可逆替代方法。

使用 PUT 方法可避免首先检查现有权利以及组成员身份。

PUT /api/2.0/preview/scim/v2/ServicePrincipals/654321 HTTP/1.1
Host: <databricks-instance>
Authorization: Bearer dapi48…a6138b
Content-Type: application/scim+json
{
  "schemas":[
    "urn:ietf:params:scim:schemas:core:2.0:ServicePrincipal"
  ],
  "applicationId":"b4647a57-063a-43e3-a6b4-c9a4e9f9f0b7",
  "displayName":"test-service-principal",
  "groups":[],
  "entitlements":[]
}

按 ID 停用服务主体

端点 HTTP 方法
2.0/preview/scim/v2/ServicePrincipals/{id} DELETE

停用服务主体资源。 此操作不可逆。

DELETE /api/2.0/preview/scim/v2/ServicePrincipals/654321  HTTP/1.1
Host: <databricks-instance>
Accept: application/scim+json
Authorization: Bearer dapi48…a6138b

作为可逆的替代方法,可以删除 所有权利与组,而不是删除服务主体。

不拥有或不属于 Azure Databricks 工作区的服务主体将在 30 天后被自动清除。