自动标识管理

使用自动标识管理,可以将用户、服务主体和组从Microsoft Entra ID无缝添加到Azure Databricks。 启用自动标识管理后,可以直接在标识联合工作区中搜索用户、服务主体和组,并将其添加到工作区。 Azure Databricks使用Microsoft Entra ID作为记录源,因此Azure Databricks尊重对组成员身份所做的任何更改。

默认情况下,为在 2025 年 8 月 1 日之后创建的帐户启用自动标识管理。

从工作区添加 MS Entra ID 组

用户还可以与标识提供者中的任何用户、服务主体或组共享仪表板。 共享时,这些用户、服务主体和组的成员会在登录时自动添加到 Azure Databricks 帐户。 它们不会被添加为仪表板所在的工作区的成员。 无权访问工作区的用户有权访问使用共享数据权限发布的仪表板的仅限查看副本。 有关仪表板共享的详细信息,请参阅 “共享仪表板”。

启用自动身份管理时,实时(JIT)预配始终开启,无法将其禁用。 首次登录时,会在Azure Databricks中自动预配新用户。 请参阅“自动预配用户”(JIT)。

非标识联合工作区不支持自动标识管理。 有关联合身份验证的详细信息,请参阅 联合身份验证

用户、服务主体和组状态

启用自动标识管理后,帐户控制台和工作区管理员设置页中会显示来自Microsoft Entra ID 的用户、服务主体和组。 它的状态反映其在 Microsoft Entra ID 与 Azure Databricks 之间的活动和状态:

状态 含义
非活动:未使用 对于用户和服务主体:尚未登录到Azure Databricks的标识提供者中的标识。
对于群组:该群组尚未添加到工作区中。
积极 标识在 Azure Databricks 中处于活动状态。
活跃:已从 [IdP] 中移除 以前在Azure Databricks中处于活动状态,并且已从标识提供者中删除。 Azure Databricks 在下一次标识同步期间自动停用这些用户。无法登录或向 API 进行身份验证。
停用 该身份已在身份提供者中被停用,或者在该身份从身份提供者中删除后,Azure Databricks 已自动将其停用。 无法登录或向 API 进行身份验证。
已拒绝 身份已添加到账户访问拒绝名单。 Azure Databricks将标识设置为非活动状态。 无法登录、使用个人访问令牌或在共享对话框中显示。 请参阅 拒绝对帐户的标识访问权限

活跃:已从 [IdP] 中移除状态标签包含您的身份提供商名称。 例如,活动:已从 Entra ID 中移除

Tip

作为一项安全最佳实践,Databricks 建议撤销 已停用活跃:已从 [IdP] 中移除 用户的个人访问令牌。 从标识提供者中删除用户时,Azure Databricks会自动停用其帐户,但不会自动吊销令牌。

使用自动标识管理管理的标识在 Azure Databricks 中显示为 外部 。 无法使用 Azure Databricks UI 更新外部标识。

共享和分配权限

启用自动标识管理后,可以在在整个Azure Databricks之间共享或分配权限时,从Microsoft Entra ID中选择用户和服务主体。

对于群组,共享行为因资产类型而有所不同:

  • 帐户级资产:共享或分配对帐户级资产(例如 Databricks 应用、Unity 目录对象、AI/BI 仪表板和工作区分配)的权限时,可以使用组。

  • 工作区级资产:若要与组共享工作区级资产(例如笔记本、作业、SQL 仓库、警报和文件),工作区管理员必须先将组直接添加到工作区。

自动标识管理与 SCIM 预配

启用自动标识管理后,所有用户、组和组成员身份都会从标识提供者同步到Azure Databricks因此不需要 SCIM 预配。 如果保持 SCIM 预配并行运行,SCIM 将继续管理使用 SCIM 预配添加的标识。 它不管理未使用 SCIM 预配添加的标识。

SCIM 预配需要云应用程序管理员角色和单独的Microsoft Entra ID 应用程序。

Azure Databricks建议使用自动标识管理。 下表比较了自动标识管理功能与 SCIM 预配功能。

Features 自动标识管理 SCIM 预配
同步用户
同步组
(仅限直接成员)
同步嵌套组
同步服务主体
Azure Databricks 中默认可用
适用于所有Microsoft Entra ID 版本
在没有Microsoft Entra ID 管理员角色的情况下可用
需要联合身份验证

Azure Databricks 外部 ID 和 Microsoft Entra ID 对象 ID

Azure Databricks 使用 Microsoft Entra ID ObjectId 作为同步身份和组成员的权威链接,并自动在每日定期流程中更新 externalId 字段以匹配 ObjectId。 Databricks 建议反对混合预配方法。 通过自动标识管理和 SCIM 预配添加相同的标识会导致重复条目和权限冲突。 使用自动标识管理作为单一事实来源,组成员身份镜像Microsoft Entra ID。

可以通过在 Azure Databricks 中提供它们的外部 ID 来合并这些重复标识。 使用 帐户用户帐户服务主体帐户组 API 更新主体,将他们的 Microsoft Entra ID 添加到 objectIdexternalId 字段中。 要查找其externalId与 Microsoft Entra ID 不匹配的主体,请运行自动身份管理准备情况报告

由于 externalId可能会随时间推移而更新,Azure Databricks 因此强烈建议不要使用依赖于 externalId 字段的自定义工作流。

自动标识管理如何匹配标识

当自动身份管理同步身份时,它会将该身份与身份提供者中的正确用户、服务主体或组匹配。 Azure Databricks用来查找匹配的信息取决于同步的触发方式。

登录时的匹配

当用户通过单点登录登录时,Azure Databricks 会从你的身份提供者那里获得一个令牌。 当令牌包含用户的对象 ID 时,Azure Databricks 会匹配该对象 ID,该对象是一个稳定且唯一的标识符。 这是最可靠的匹配。

Microsoft Entra ID 登录令牌包含对象 ID、租户 ID、组成员身份和用户名,因此登录内容与对象 ID 匹配。

用户名匹配

有些流程不包含登录令牌,比如创建或刷新权限上下文、个人访问令牌认证、账户控制台操作和后台身份同步。在这些流程中,Azure Databricks 在 Azure Databricks 用户名上匹配。 它会在 Microsoft Entra ID 中搜索用户主体名(UPN)或邮箱与 Azure Databricks 用户名相等的用户,并优先选择 UPN 匹配而非电子邮件匹配。

例如,如果Azure Databricks用户具有用户名alice@contoso.com,Azure Databricks首先使用 UPN alice@contoso.com查找Microsoft Entra ID用户。 如果没有匹配的 UPN,它会查找电子邮件地址为 alice@contoso.com 的用户。

在解析和创建用户时的匹配

当你共享一个尚未在 Azure Databricks 中存在的 Microsoft Entra ID 身份的对象,或者调用 Resolve User APIresolveByExternalId()时,Azure Databricks 首先尝试通过 UPN 或电子邮件匹配现有的 Azure Databricks 用户。 如果没有匹配用户,Azure Databricks 会创建一个即时用户名,并根据用户在 Microsoft Entra ID 中的状态设置用户名:

  • 在你的租户中创建的用户:Azure Databricks 使用 UPN 作为用户名。 例如,具有 UPN bob@contoso.com 的 Microsoft Entra ID 用户将成为用户名为 bob@contoso.com 的 Azure Databricks 用户。
  • 通过B2B协作邀请或同步的用户(访客):Azure Databricks更倾向于使用邮箱作为用户名,当访客对象没有邮箱时,它会退回到UPN。 例如,UPN 为 carol_fabrikam.com#EXT#@contoso.partner.onmschina.cn 且电子邮件地址为 carol@fabrikam.com 的来宾,会成为 Azure Databricks 用户,用户名为 carol@fabrikam.com

自动身份管理无法解决的情况

某些身份提供者配置会阻止 Azure Databricks 可靠匹配预期用户。 设置好你的身份以避免以下情况。

多个用户关联到同一邮箱地址

如果有多个 Microsoft Entra ID 用户的邮箱与 Azure Databricks 用户名相同,且没有匹配的 UPN,Azure Databricks 无法确定你打算使用哪个用户。 它会在没有固定顺序保证的情况下匹配其中一个用户,因此可能会同步错误的用户,而且同步对象可能会随着时间在这些匹配到的用户之间来回切换。

例如,Azure Databricks用户具有用户名dana@contoso.com。 在 Microsoft Entra ID 中,两个用户拥有电子邮件dana@contoso.com:一个成员账户的 UPN 为 d.lee@fabrikam.com,以及一个访客账户的 UPN 为 dana_contoso.com#EXT#@fabrikam.partner.onmschina.cn。 用户名和两个用户的邮箱都匹配,但两个UPN都不匹配,所以Azure Databricks无法区分它们,只能随机匹配其中一个。

为避免这种情况,确保目标 Microsoft Entra ID 用户的 UPN 等于 Azure Databricks 用户名,并且不要保留多个共享邮件的 Microsoft Entra ID 对象。

用户名来自另一个租户

访客用户可以用带有其主租户用户用户名的令牌登录,而租户中的访客对象既没有UPN也没有与该用户名相同的邮箱。 登录时,这仍然有效,因为基于令牌的匹配是根据对象 ID 而非用户名来解析用户的。 在Azure Databricks用户名上没有令牌匹配的流,因此他们找不到要同步的来宾对象,并且解析或共享可能会创建具有意外用户名的Azure Databricks用户。

例如,Azure Databricks 用户的用户名为 erin@fabrikam.com,该用户名沿用自用户的所属租户。 在你的租户中,访客对象有UPN erin_fabrikam.com#EXT#@contoso.partner.onmschina.cn ,但没有匹配的邮箱。 基于令牌的登录通过对象ID来解析该用户,但由于UPN和邮箱都不等于 erin@fabrikam.com,基于用户名的匹配找不到用户。

为避免这种情况,确保访客对象的邮箱与 Azure Databricks 用户名相等。

组成员同步的工作原理

启用自动标识管理后,Azure Databricks在触发身份验证和授权检查的活动期间刷新标识提供者的用户组成员身份,例如浏览器登录名、令牌身份验证或作业运行。 这可确保 Azure Databricks 中基于组的权限与身份提供商中的更改保持同步。

当 Azure Databricks 刷新组成员关系时,它会从身份提供商处获取传递性(嵌套)组成员关系。 这意味着,如果用户是组 A 的成员,而组 A 是组 B 的成员,Azure Databricks 会将该用户识别为在这两个组中都有成员身份。 Azure Databricks 仅提取已经添加到 Azure Databricks 的组的成员信息。 它不会从您的身份提供程序同步或重建完整的父组层次结构。

Azure Databricks 根据活动的不同计划刷新组成员身份:

  • 浏览器登录:如果距离上次同步超过5分钟,组成员身份会同步。
  • 其他活动(例如,令牌认证或运行作业):Azure Databricks 根据上次同步发生的时间刷新组成员身份:
    • 少于10分钟:不进行刷新。
    • 10到40分钟:Azure Databricks在后台触发异步刷新。 触发刷新的请求可能仍然使用之前的组成员权限。 更新后的会员资格适用于后续的申请。
    • 超过40分钟:Azure Databricks在完成请求前刷新了组成员资格。

嵌套组和服务主体

启用自动标识管理后,嵌套组的成员将从预配的组继承权限。 分配给父级组的权限适用于属于该组的所有用户和服务主体,包括直接添加到该组的用户和服务主体以及通过嵌套组成员身份隶属的用户和服务主体。 但是,组中的嵌套组和服务主体在帐户中不能被自动引用,但仪表板共享是一个例外。

嵌套组可见性

嵌套组在 Azure Databricks 中可见。 请考虑子组, Group-C它是父组 Group-P的成员。 如果将Group-P添加到工作区,则Group-PGroup-C中的所有标识都有权访问工作区。 在帐户管理员和工作区管理员用户界面中,Group-C 在组成员详细信息页上显示为Group-P 中的成员。 只有第一级嵌套显示在组详细信息页面上。

嵌套组的注意事项

  • 工作区访问:嵌套组和服务主体无需直接添加到工作区以获取访问权限。 如果将父组添加到工作区,该组的所有成员都可以访问工作区。

  • 帐户级资产:共享或分配对帐户级资产(例如 Databricks 应用、Unity 目录对象、AI/BI 仪表板和工作区分配)的权限时,可以使用组。

  • 帐户组和服务主体限制:未直接预配到帐户的嵌套组和服务主体不计入帐户组限制。 只有显式预配到账户的组才会计入限额。

例如,在 Microsoft Entra ID 中,具有以下组结构:

  • Marketing-All (父组)
    • Marketing-US (子组)
    • Marketing-EU (子组)
    • Marketing-APAC (子组)

如果工作区管理员将 Marketing-All 添加到他们的工作区:

  • 授予访问权限:所有成员Marketing-All及其所有子组(Marketing-USMarketing-EUMarketing-APAC)都可以访问工作区。 例如,用户 Marketing-APAC 和服务主体可以进行身份验证并使用工作区。
  • 帐户预配:仅 Marketing-All 被预配到 Azure Databricks 帐户,并计入帐户组的限额。 除非显式分配子组,否则它们不会计入限制。
  • 帐户级资产:Marketing-All及其所有子组(、)Marketing-USMarketing-EU在共享或分配对帐户级资产(Marketing-APAC例如 Unity 目录中的仪表板和对象)的权限时可用。

启用自动标识管理

默认情况下,为在 2025 年 8 月 1 日之后创建的帐户启用自动标识管理。 帐户管理员可以在帐户控制台中启用自动标识管理。

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

  2. 在边栏中,单击“ 安全性”。

  3. 在“ 用户预配 ”选项卡中,将 “自动标识管理 ”切换为 “已启用”。

    更改需要 5 到 10 分钟才能生效。

在帐户中启用了自动标识管理。

启用账户后,若要在身份提供商中添加和移除用户、服务主体和组,请按照以下说明操作:

若要从 SCIM 预配迁移,请参阅使用 Microsoft Entra ID 迁移到自动标识管理

禁用自动标识管理

禁用自动标识管理时:

  • 用户和服务主体保持不变:他们保留访问权限,但不再与标识提供者同步。 禁用自动标识管理后,可以在帐户控制台中手动删除或停用用户和服务主体。
  • 组丢失成员身份:组保留在 Azure Databricks 中,但所有组成员都将被删除。
  • 与标识提供者没有同步:标识提供者(例如用户删除或组更新)中的更改不会反映在Azure Databricks中。
  • 无权限继承:由自动标识管理管理管理的用户无法从父组继承权限。 这会影响基于组的嵌套权限模型。

如果计划禁用自动标识管理,Databricks 建议提前设置 SCIM 配置作为备选方案。 然后,SCIM 可以接管标识和组同步。

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

  2. 在边栏中,单击“ 安全性”。

  3. 在“ 用户预配 ”选项卡中,将 “自动标识管理 ”切换为 “已禁用”。

拒绝对帐户的标识访问

帐户访问拒绝列表用于控制来自您的身份提供商的哪些身份可以访问您的 Azure Databricks 帐户。 帐户管理员可以将特定用户、组或服务主体添加到拒绝列表,以阻止其访问。 拒绝列表中的成员资格具有传递性——如果将某个组加入拒绝列表,则其所有成员(包括嵌套组中的成员)也都会被加入拒绝列表。

有关配置说明和拒绝列表的行为的完整说明,请参阅 阻止身份访问您的账户

审核自动身份管理事件

启用自动标识管理后,可以使用审核日志来跟踪自动标识管理过程执行的标识操作。

自动身份管理事件的审核日志标记

自动标识管理使用现有的审核日志事件,但添加标记来标识标识标识同步过程自动执行的操作:

  • endpoint: "autoUserCreation" - 表示该事件由自动身份管理流程发出。 此标记显示在用户操作(addactivateUserdeactivateUserupdateUser)、组操作(createGroupupdateGroupremoveGroup)和组成员身份操作(addPrincipalToGroupremovePrincipalFromGroup)上。
  • groupMembershipType: "IdentityProvider" - 显示在组成员身份操作(addPrincipalToGroupremovePrincipalFromGroup)中,表示组成员身份已从您的身份提供商同步。

查询自动身份管理审计事件

可以查询 system.access.audit 表以跟踪自动标识管理操作。 例如:

跟踪用户登录:

SELECT
  DISTINCT user_identity.email
FROM
  system.access.audit
WHERE
  action_name = "aadBrowserLogin"

跟踪由自动标识管理创建的用户:

SELECT
  request_params.targetUserName,
  event_time
FROM
  system.access.audit
WHERE
  action_name = "add"
  AND request_params.endpoint = "autoUserCreation"

跟踪从标识提供者同步的组成员身份:

SELECT
  request_params.targetGroupName,
  request_params.targetUserName,
  event_time
FROM
  system.access.audit
WHERE
  action_name IN ("addPrincipalToGroup", "removePrincipalFromGroup")
  AND request_params.groupMembershipType = "IdentityProvider"

有关表 system.access.audit 的详细信息,请参阅 审核日志系统表参考

已知行为和限制

本部分介绍使用自动标识管理时可能不立即明显的行为。

组创建与工作区分配

当自动身份管理从您的身份提供者同步群组时,会在账户级别自动创建这些群组。 这些事件在审核日志中显示为带有 createGroup 标签的 endpoint: "autoUserCreation" 操作。 帐户级组创建是自动的,但工作区分配是单独的手动步骤。 只有在帐户管理员将组分配到工作区后,同步组的成员才获得工作区访问权限。 自动身份管理负责控制组成员身份,管理员负责控制工作区访问权限。

组名同步并非主动

在标识提供者中重命名组后,Azure Databricks 中的组名不会立即更新。 仅当帐户管理员在帐户控制台中打开组的详细信息页时,组名称才会同步。 在此之前,组会在 Azure Databricks 中保留其以前的名称。

自动身份管理不会移除 SCIM 同步的成员身份

自动标识管理不会删除最初使用 SCIM 预配同步的组成员身份。 这是故意设计如此,以避免中断依赖这些成员身份的现有任务和权限。 若要删除过时的 SCIM 同步成员身份,请使用 SCIM API 手动清理它们。

首次使用时的服务主体配置

将包含服务主体的组添加到 Azure Databricks 不会配置这些服务主体。 Azure Databricks 仅在首次使用时预配服务主体,例如令牌身份验证或作业执行。 在服务主体对作业进行身份验证或运行之前,它不会显示在 Azure Databricks 中。

Entra ID 跨租户目录不受支持

自动身份管理不支持跨租户的 Microsoft Entra ID 目录。 如果需要跨租户标识管理,请使用 Microsoft Entra B2B 协作配置 SCIM 预配。

通过 API 和 Terraform 实现嵌套组和服务主体

未直接预配到 Azure Databricks 帐户的嵌套组和服务主体在帐户控制台 UI 中可见,但无法通过 Databricks API 或 Terraform 检索或管理。 若要以编程方式管理它们,请将其显式预配到帐户。

权限在从 SCIM 迁移到自动身份管理时会保留

从 SCIM 预配迁移到自动标识管理时,组将保持不变的内部 Azure Databricks 对象。 Unity 目录权限、工作区分配和其他设置会自动进行传递。 迁移期间不会丢失任何权限。