管理服务主体

本页介绍如何管理 Azure Databricks 帐户和工作区的服务主体。

有关服务主体的概述,请参阅 服务主体

将服务主体从 Microsoft Entra ID 租户同步到 Azure Databricks 帐户

可以使用自动标识管理(公共预览版)将Microsoft Entra ID 服务主体从 Microsoft Entra ID 租户自动同步到 Azure Databricks 帐户。 Databricks 使用 Microsoft Entra ID 作为源,因此在 Azure Databricks 中尊重对用户或组成员身份所做的任何更改。 若要启用自动标识管理,请参阅 从 Microsoft Entra ID 自动同步用户和组

SCIM 预配不支持同步服务主体。

将服务主体添加到帐户

帐户管理员和工作区管理员可以使用帐户控制台或工作区管理员设置页将服务主体添加到 Azure Databricks 帐户。

可以在 Azure Databricks 中创建服务主体,也可以从现有的 Microsoft Entra ID 服务主体进行链接。 请参阅 Databricks 和 Microsoft Entra ID 服务主体。 启用自动标识管理后,可以直接从 Microsoft Entra ID 搜索和添加服务主体。

帐户管理员和工作区管理员可以使用帐户控制台或工作区管理员设置页将服务主体添加到 Azure Databricks 帐户。

帐户控制台

  1. 作为帐户管理员,登录到帐户控制台

  2. 在边栏中,单击“用户管理”。

  3. 在“服务主体”选项卡上,单击“添加服务主体”。

  4. 在“管理”下,选择“Databricks 管理”或“Microsoft Entra ID 管理”

  5. 如果选择了“Microsoft Entra ID 管理”,请在“Microsoft Entra 应用程序 ID”下粘贴服务主体的应用程序(客户端)ID。

  6. 为服务主体输入名称。

  7. 单击 添加

工作区管理员设置

  1. 以工作区管理员身份登录到 Azure Databricks 工作区。

  2. 单击 Azure Databricks 工作区顶部栏中的用户名,然后选择“设置”

  3. 单击“身份验证和访问控制”选项卡。

  4. 服务主体旁边,单击管理

  5. 单击“添加服务主体”

  6. 单击“新增” 。

  7. 选择 Databricks 托管Microsoft Entra ID 托管。 如果选择 Microsoft Entra ID 托管,请粘贴服务主体的应用程序(客户端)ID。

  8. 为服务主体输入名称。

  9. 单击 添加

将帐户级管理员角色分配给服务主体

  1. 作为帐户管理员,登录到帐户控制台

  2. 在边栏中,单击“用户管理”。

  3. 在“服务主体”选项卡上,找到并单击用户名。

  4. 在“ 角色 ”选项卡上,选择一个或多个角色。

将服务主体分配给工作区

帐户管理员和工作区管理员可以使用帐户控制台或工作区管理员设置页将服务主体分配到 Azure Databricks 工作区。

帐户控制台

若要使用帐户控制台将用户添加到工作区,工作区必须启用联合身份验证。

  1. 作为帐户管理员,登录到帐户控制台

  2. 在边栏中单击“工作区”。

  3. 单击工作区名称。

  4. 在“权限”选项卡上,单击“添加权限”

  5. 搜索并选择服务主体,分配权限级别(工作区“用户”或“管理员”),然后单击“保存”。

工作区管理员设置

  1. 以工作区管理员身份登录到 Azure Databricks 工作区。

  2. 单击 Azure Databricks 工作区顶部栏中的用户名,然后选择“设置”

  3. 单击“身份验证和访问控制”选项卡。

  4. 服务主体旁边,单击管理

  5. 单击“添加服务主体”

  6. 选择现有服务主体。

  7. 单击 添加

从工作区中删除服务主体

帐户管理员和工作区管理员可以使用帐户控制台或工作区管理员设置页从 Azure Databricks 工作区中删除服务主体。

从工作区中删除服务主体后,该服务主体将无法再访问该工作区,但服务主体上的权限仍会保留。 如果稍后将该服务主体添加回工作区,它将重新获得其以前的权限。

帐户控制台

若要使用帐户控制台从工作区中删除服务主体,工作区必须启用联合身份验证。

  1. 作为帐户管理员,登录到帐户控制台

  2. 在边栏中单击“工作区”。

  3. 单击工作区名称。

  4. 在“权限”选项卡上,找到服务主体。

  5. 单击服务主体行最右侧的 Kebab 菜单“Kebab 菜单”,然后选择“删除”。

  6. 在确认对话框中,单击“删除”。

工作区管理员设置

从工作区中删除服务主体后,该服务主体将无法再访问该工作区,但服务主体上的权限仍会保留。 如果稍后将该服务主体添加回工作区,它将重新获得其以前的权限。

  1. 以工作区管理员身份登录到 Azure Databricks 工作区。

  2. 单击 Azure Databricks 工作区顶部栏中的用户名,然后选择“设置”

  3. 单击“身份验证和访问控制”选项卡。

  4. 服务主体旁边,单击管理

  5. 选择服务主体。

  6. 在右上角,单击“删除”。

  7. 单击“删除”进行确认。

将工作区管理员角色分配给服务主体

  1. 以工作区管理员身份登录到 Azure Databricks 工作区。

  2. 单击 Azure Databricks 工作区顶部栏中的用户名,然后选择“设置”

  3. 单击“身份验证和访问控制”选项卡。

  4. 旁边,单击管理

  5. 选择 admins 系统组。

  6. 单击“添加成员”。

  7. 选择服务主体并单击“确认”。

若要删除某个服务主体的工作区管理员角色,请从管理员组中删除该服务主体。

停用服务主体

可以在帐户或工作区级别停用服务主体。 停用可防止服务主体对 Databricks API 进行身份验证和访问,但不会删除其权限或对象。 这比删除更好,这是一种破坏性操作。

停用的效果:

  • 服务主体无法对 Databricks API 进行身份验证或访问。
  • 使用服务主体生成的令牌的应用程序或脚本将无法再访问 Databricks API。 令牌将保留,但不能用于在服务主体停用时进行身份验证。
  • 服务主体拥有的计算资源仍保持运行状态。
  • 由服务主体创建的计划作业将失败,除非它们分配给新的所有者。

重新激活后,服务主体将重新获得具有相同权限的访问权限。

帐户级别停用

帐户管理员可以在 Azure Databricks 帐户中停用服务主体。 在帐户级别停用服务主体时,无法向 Azure Databricks 帐户或帐户中的任何工作区进行身份验证。

无法使用帐户控制台停用服务主体。 请改为使用帐户服务主体 API

例如:

curl --netrc -X PATCH \
https://${DATABRICKS_HOST}/api/2.1/accounts/{account_id}/scim/v2/ServicePrincipals/{id} \
--header 'Content-type: application/scim+json' \
--data @update-sp.json \
| jq .

update-sp.json:

{
  "schemas": ["urn:ietf:params:scim:api:messages:2.0:PatchOp"],
  "Operations": [
    {
      "op": "replace",
      "path": "active",
      "value": [
        {
          "value": "false"
        }
      ]
    }
  ]
}

工作区级别停用

在工作区级别停用服务主体时,它无法向该特定工作区进行身份验证,但仍可以对帐户中的帐户和其他工作区进行身份验证。

  1. 以工作区管理员身份登录到 Azure Databricks 工作区。

  2. 单击 Azure Databricks 工作区顶部栏中的用户名,然后选择“设置”

  3. 单击“身份验证和访问控制”选项卡。

  4. 服务主体旁边,单击管理

  5. 选择要停用的服务主体。

  6. 在“状态”下,取消选中“活动”。

若要将服务主体设置为活动状态,请执行相同的步骤,但改为选中该复选框。

从 Azure Databricks 帐户中删除服务主体

帐户管理员可以从 Azure Databricks 帐户中删除服务主体。 工作区管理员不能执行此操作。 从帐户中删除服务主体时,该主体也会从其工作区中移除。

重要

从帐户中删除服务主体时,该服务主体也将从其工作区中删除,不管是否启用了联合身份验证。 建议不要删除帐户级服务主体,除非希望他们失去对帐户中所有工作区的访问权限。 请注意删除服务主体会产生以下后果:

  • 使用服务主体生成的令牌的应用程序或脚本无法再访问 Databricks API
  • 服务主体拥有的作业失败
  • 服务主体所属的计算机停止运行
  • 服务主体创建并使用“以所有者身份运行”凭据共享的查询或仪表板必须分配给新所有者,以防共享失败

从帐户中删除 Microsoft Entra ID 服务主体后,该服务主体将无法再访问该帐户或其工作区,但该服务主体上的权限仍会保留。 如果稍后将该服务主体添加回帐户,它将重新获得其以前的权限。

若要使用帐户控制台删除服务主体,请执行以下操作:

  1. 作为帐户管理员,登录到帐户控制台。

  2. 在边栏中,单击“用户管理”。

  3. 在“服务主体”选项卡上,找到并单击用户名。

  4. 在“主体信息”选项卡上,单击右上角的 kebab 菜单,然后选择“删除”。

  5. 在确认对话框中,单击“确认删除”。

    注释

    启用自动标识管理后,Microsoft Entra ID 中的服务主体在帐户控制台中可见。 其状态显示为 “非活动”:无使用情况 ,无法将其从服务主体列表中删除。 他们在帐户中处于非活动状态,并且不会计入限制。

使用 API 管理服务主体

帐户管理员和工作区管理员可以使用 Databricks API 管理 Azure Databricks 帐户和工作区中的服务主体。 若要使用 API 管理服务主体上的角色,请参阅使用 Databricks CLI 管理服务主体角色

使用 API 管理帐户中的服务主体

管理员可以使用帐户服务主体 API 在 Azure Databricks 帐户中添加和管理服务主体。 帐户管理员和工作区管理员使用不同的终结点 URL 调用 API:

  • 帐户管理员使用 {account-domain}/api/2.1/accounts/{account_id}/scim/v2/
  • 工作区管理员使用 {workspace-domain}/api/2.0/account/scim/v2/

有关详细信息,请参阅帐户服务主体 API

使用 API 管理工作区中的服务主体

帐户和工作区管理员可以使用工作区分配 API 将服务主体分配到已启用联合身份验证的工作区。 工作区分配 API 在 Azure Databricks 帐户和工作区中得到支持。

  • 帐户管理员使用 {account-domain}/api/2.0/accounts/{account_id}/workspaces/{workspace_id}/permissionassignments
  • 工作区管理员使用 {workspace-domain}/api/2.0/preview/permissionassignments/principals/{principal_id}

请参阅工作区分配 API

如果工作区未启用联合身份验证,则工作区管理员可以使用工作区级 API 将服务主体分配到其工作区。 请参阅工作区服务主体 API

管理服务主体的令牌

服务主体可以使用 OAuth 令牌或个人访问令牌向 Databricks API 进行身份验证,每个 API 都有不同的范围和安全注意事项:

Databricks 建议尽可能使用 OAuth 令牌进行服务主体身份验证,以提高安全性和生命周期管理。 仅在 OAuth 不适用于用例时使用 PAT。

有关使用 Azure 托管服务标识(MSI)或Microsoft Entra ID 访问令牌的详细信息,请参阅 Azure 托管标识身份验证MS Entra 服务主体身份验证