使用 Microsoft Entra ID (Azure Active Directory) 配置 SCIM 预配

本文介绍如何使用 Microsoft Entra ID(以前称为 Azure Active Directory)设置到 Azure Databricks 的预配。

可以使用 Microsoft Entra ID 在 Azure Databricks 帐户级别或 Azure Databricks 工作区级别设置到 Azure Databricks 的预配。

Databricks 建议将用户、服务主体和组预配到帐户级别,并在 Azure Databricks 内管理到工作区的用户和组分配。 必须为工作区启用联合身份验证,以便管理用户到工作区的分配。 如果你有任何未启用联合身份验证的工作区,应将用户、服务主体和组直接预配到这些工作区。

注意

配置预配的方式完全不同于为 Azure Databricks 工作区或帐户配置身份验证和条件访问。 Azure Databricks 的身份验证由 Microsoft Entra ID 使用 OpenID Connect 协议流自动处理。 可以在服务级别配置条件访问,以便创建规则来要求进行多重身份验证或将登录限制为本地网络。

使用 Microsoft Entra ID 将标识预配到 Azure Databricks 帐户

可以使用 SCIM 预配连接器将帐户级用户和组从 Microsoft Entra ID 租户同步到 Azure Databricks。

重要

如果已有直接将标识同步到工作区的 SCIM 连接器,则必须在启用帐户级 SCIM 连接器时禁用这些 SCIM 连接器。 请参阅将工作区级 SCIM 预配迁移到帐户级别

要求

  • Azure Databricks 帐户必须具有高级计划
  • 必须在 Microsoft Entra ID 中具有云应用程序管理员角色。
  • 你的 Microsoft Entra ID 帐户必须是高级帐户才能预配组。 任何 Microsoft Entra ID 版本都可预配用户。
  • 你必须是 Azure Databricks 帐户管理员。

注意

若要启用帐户控制台并建立你的第一个帐户管理员,请参阅建立你的第一个帐户管理员

步骤 1:配置 Azure Databricks

  1. 以 Azure Databricks 帐户管理员身份登录到 Azure Databricks 帐户控制台
  2. 单击“用户设置”图标“设置”。
  3. 单击“用户预配”。
  4. 单击“启用用户预配”。

复制 SCIM 令牌和帐户 SCIM URL。 将使用它们来配置 Microsoft Entra ID 应用程序。

注意

SCIM 令牌仅限于帐户 SCIM API /api/2.0/accounts/{account_id}/scim/v2/,不能用于向其他 Databricks REST API 进行身份验证。

步骤 2:配置企业应用程序

这些说明介绍了如何在 Azure 门户中创建企业应用程序,并使用该应用程序进行预配。 如果有现成的企业应用程序,你可以将其修改为使用 Microsoft Graph 自动执行 SCIM 预配。 这样就不再需要在 Azure 门户中使用单独的预配应用程序。

按照以下步骤操作,使 Microsoft Entra ID 能够将用户和组同步到 Azure Databricks 帐户。 此配置独立于为将用户和组同步到工作区而创建的任何配置。

  1. 在 Azure 门户中,转到“Microsoft Entra ID”>“企业应用程序”。
  2. 单击应用程序列表上方的“+ 新建应用程序”。 在“从库中添加”下,搜索并选择“Azure Databricks SCIM 预配连接器”。
  3. 输入应用程序的名称并单击“添加”。
  4. 在“管理”菜单下,单击“预配”。
  5. 将“预配模式”设置为“自动”。
  6. 将“SCIM API 终结点 URL”设置为之前复制的帐户 SCIM URL。
  7. 将“机密令牌”设置为之前生成的 Azure Databricks SCIM 令牌。
  8. 单击“测试连接”,等待确认凭据已获得启用预配的授权的消息。
  9. 单击“保存”。

步骤 3:将用户和组分配到应用程序

分配给 SCIM 应用程序的用户和组将预配到 Azure Databricks 帐户。 如果已有 Azure Databricks 工作区,则 Databricks 建议将这些工作区中的所有现有用户和组添加到 SCIM 应用程序。

注意

Microsoft Entra ID 不支持将服务主体自动预配到 Azure Databricks。 可以按照管理帐户中的服务主体将服务主体添加到 Azure Databricks 帐户。

Microsoft Entra ID 不支持将嵌套组自动预配到 Azure Databricks。 Microsoft Entra ID 只能读取和预配是显式分配的组的直属成员的用户。 解决方法是,显式分配(或限定)包含需要预配的用户的组。 有关详细信息,请参阅此常见问题解答

  1. 转到“管理 > 属性”
  2. 将“需要分配”设置为“否”。 Databricks 建议使用此选项,这会支持所有用户登录到 Azure Databricks 帐户。
  3. 转到“管理”>“预配”。
  4. 要开始将 Microsoft Entra ID 用户和组同步到 Azure Databricks,请将“预配状态”开关设为“开”
  5. 单击“ 保存”。
  6. 转到“管理”>“用户和组”。
  7. 单击“添加用户/组”,选择用户和组,然后单击“分配”按钮
  8. 等待几分钟,然后检查用户和组是否已存在于 Azure Databricks 帐户中。

当 Microsoft Entra ID 计划下一次同步时,添加和分配的用户和组将自动预配到 Azure Databricks 帐户。

注意

如果从帐户级 SCIM 应用程序中删除某个用户,则会从帐户及其工作区中停用该用户,而不考虑是否启用了联合身份验证。

使用 Microsoft Entra ID(旧版)将标识预配到 Azure Databricks 工作区

重要

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

如果你有任何未启用联合身份验证的工作区,应将用户、服务主体和组直接预配到这些工作区。 本部分将介绍如何操作。

在以下示例中,请将 <databricks-instance> 替换为 Azure Databricks 部署的<databricks-instance>

要求

  • Azure Databricks 帐户必须具有高级计划
  • 必须在 Microsoft Entra ID 中具有云应用程序管理员角色。
  • 你的 Microsoft Entra ID 帐户必须是高级帐户才能预配组。 任何 Microsoft Entra ID 版本都可预配用户。
  • 必须是 Azure Databricks 工作区管理员。

步骤 1:创建企业应用程序并将其连接到 Azure Databricks SCIM API

若要使用 Microsoft Entra ID 设置到 Azure Databricks 工作区的预配,需要为每个 Azure Databricks 工作区创建一个企业应用程序。

这些说明介绍了如何在 Azure 门户中创建企业应用程序,并使用该应用程序进行预配。 如果有现成的企业应用程序,你可以将其修改为使用 Microsoft Graph 自动执行 SCIM 预配。 这样就不再需要在 Azure 门户中使用单独的预配应用程序。

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

  2. 生成个人访问令牌,然后复制它。 在后续步骤中,你将此令牌提供给 Microsoft Entra ID。

    重要

    不受 Microsoft Entra ID 企业应用程序管理的某个 Azure Databricks 工作区管理员身份生成此令牌。 如果使用 Microsoft Entra ID 取消预配拥有个人访问令牌的 Azure Databricks 管理员用户,则会禁用 SCIM 预配应用程序。

  3. 在 Azure 门户中,转到“Microsoft Entra ID”>“企业应用程序”。

  4. 单击应用程序列表上方的“+ 新建应用程序”。 在“从库中添加”下,搜索并选择“Azure Databricks SCIM 预配连接器”。

  5. 输入应用程序的名称并单击“添加”。 请使用有助于管理员查找的名称,例如 <workspace-name>-provisioning

  6. 在“管理”菜单下,单击“预配”。

  7. 将“预配模式”设置为“自动”。

  8. 输入 SCIM API 终结点 URL。 将 /api/2.0/preview/scim 追加到你的工作区 URL:

    https://<databricks-instance>/api/2.0/preview/scim
    

    (将 <databricks-instance> 替换为 Azure Databricks 部署的工作区 URL)。 请参阅获取工作区对象的标识符

  9. 将“机密令牌”设置为你在步骤 1 中生成的 Azure Databricks 个人访问令牌。

  10. 单击“测试连接”,等待确认凭据已获得启用预配的授权的消息。

  11. (可选)输入通知电子邮件,接收与 SCIM 预配严重错误有关的通知。

  12. 单击“保存”。

步骤 2:将用户和组分配到应用程序

注意

Microsoft Entra ID 不支持将服务主体自动预配到 Azure Databricks。 可以按照管理工作区中的服务主体将服务主体添加到 Azure Databricks 工作区。

Microsoft Entra ID 不支持将嵌套组自动预配到 Azure Databricks。 Microsoft Entra ID 只能读取和预配是显式分配的组的直属成员的用户。 解决方法是,显式分配(或限定)包含需要预配的用户的组。 有关详细信息,请参阅此常见问题解答

  1. 转到“管理 > 属性”
  2. 将“需要分配”设置为“是”。 Databricks 建议使用此选项,这将仅同步分配到企业应用程序的用户和组。
  3. 转到“管理”>“预配”。
  4. 要开始将 Microsoft Entra ID 用户和组同步到 Azure Databricks,请将“预配状态”开关设为“开”
  5. 单击“ 保存”。
  6. 转到“管理”>“用户和组”。
  7. 单击“添加用户/组”,选择用户和组,然后单击“分配”按钮
  8. 等待几分钟,然后检查用户和组是否已存在于 Azure Databricks 帐户中。

将来,当 Microsoft Entra ID 计划下一次同步时,会自动预配你添加并分配的用户和组。

重要

请勿分配其个人访问令牌已用来配置“Azure Databricks SCIM 预配连接器”应用程序的 Azure Databricks 工作区管理员。

(可选)使用 Microsoft Graph 自动执行 SCIM 预配

Microsoft Graph 包括可以集成到应用程序中的身份验证和授权库,用于自动将用户和组预配到 Azure Databricks 帐户或工作区,而不必配置“SCIM 预配连接器”应用程序。

  1. 请按照有关使用 Microsoft Graph 注册应用程序的说明进行操作。 记下应用程序的应用程序 ID 和租户 ID。
  2. 转到应用程序的“概述”页面。 在该页面上:
    1. 为应用程序配置客户端机密,并记下该机密。
    2. 向应用程序授予以下权限:
      • Application.ReadWrite.All
      • Application.ReadWrite.OwnedBy
  3. 要求 Microsoft Entra ID 管理员授予管理员同意
  4. 更新应用程序的代码,以添加对 Microsoft Graph 的支持

预配提示

  • 启用预配之前 Azure Databricks 工作区中已存在的用户和组在预配同步时展示以下行为:
    • 如果它们也存在于 Microsoft Entra ID 中,则会合并
    • 如果它们不存在于 Azure Active Directory 中,则会被忽略
  • 为用户删除组成员身份后,单独分配并通过组中的成员身份复制的用户权限会保留。
  • 使用 Azure Databricks 工作区管理员设置页直接从 Azure Databricks 工作区中移除的用户将:
    • 失去对该 Azure Databricks 工作区的访问权限,但仍可访问其他 Azure Databricks 工作区。
    • 不会使用 Microsoft Entra ID 预配再次同步,即使它们保留在企业应用程序中。
  • 初始 Microsoft Entra ID 同步会在你启用预配后立即触发。 后续同步每 20-40 分钟触发一次,具体取决于应用程序中的用户和组的数目。 请参阅 Microsoft Entra ID 文档中的预配摘要报告
  • 无法更新 Azure Databricks 工作区用户的用户名或电子邮件地址。
  • admins 组是 Azure Databricks 中的保留组,无法删除。
  • 可以使用 Azure Databricks 组 API组 UI 获取任何 Azure Databricks 工作区组的成员列表。
  • 无法从 Azure Databricks SCIM 预配连接器应用程序同步嵌套组或 Microsoft Entra ID 服务主体。 Databricks 建议使用企业应用程序来同步用户和组,并管理 Azure Databricks 中的嵌套组和服务主体。 但是,也可以使用 Databricks Terraform 提供程序或面向 Azure Databricks SCIM API 的自定义脚本来同步嵌套组或 Microsoft Entra ID 服务主体。

疑难解答

用户和组不同步

  • 如果你使用的是“Azure Databricks SCIM 预配连接器”应用程序:
    • 对于工作区级预配:在 Azure Databricks 管理员设置页中,验证其个人访问令牌正由 Azure Databricks SCIM 预配连接器应用程序使用的 Azure Databricks 用户是否仍是 Azure Databricks 中的工作区管理员用户,以及该令牌是否仍然有效。
    • 对于帐户级预配:在帐户控制台中,验证用于设置预配的 Azure Databricks SCIM 令牌是否仍然有效。
  • 请勿尝试同步嵌套组,Microsoft Entra ID 自动预配不支持此类组。 有关详细信息,请参阅此常见问题解答

Microsoft Entra ID 服务主体不会同步

  • Azure Databricks SCIM 预配连接器应用程序不支持同步服务主体。

在初始同步后,用户和组停止同步

如果你使用的是 Azure Databricks SCIM 预配连接器应用程序:初始同步后,Microsoft Entra ID 不会在你更改用户或组分配后立即同步。 它会在延迟一段时间后才计划与应用程序的同步,具体取决于用户和组的数目。 若要请求立即同步,请转到企业应用程序的“管理”>“预配”,选择“清除当前状态并重启同步”。

Microsoft Entra ID 预配服务 IP 范围不可访问

Microsoft Entra ID 预配服务在特定 IP 范围下运行。 如果你需要限制网络访问,必须在此 IP 范围文件中允许来自 AzureActiveDirectory 的IP 地址的流量。 有关详细信息,请参阅 IP 范围