本页介绍如何将Azure Databricks帐户迁移到自动标识管理。
有关自动标识管理的概述,请参阅 自动标识管理。
先决条件
在启用自动标识管理之前,请确认环境是否满足以下要求。
| 要求 | 详细信息 | 如何验证 |
|---|---|---|
| 高级层级或企业层级 | 标准层帐户上不提供自动标识管理。 | 帐户控制台 >帐户设置>订阅层 |
| 单个 Microsoft Entra ID 租户 | 自动标识管理不支持跨租户标识。 所有用户、组和服务主体都必须属于单个Microsoft Entra ID租户。 具有跨租户身份的环境必须继续使用 SCIM 预配。 | 请与身份团队确认。 |
| 至少在一个工作区上启用联合身份验证 | 自动标识管理至少需要一个标识联合工作区。 非联合工作区继续正常运行,但不使用自动标识管理。 | 在账户控制台中,打开 工作区,然后查找带有 身份联合 标记的项。 若要启用它,请参阅 “启用联合身份验证”。 |
| 帐户管理员角色 | 只有帐户管理员才能启用自动标识管理。 | 帐户控制台 >用户管理。 您的角色标签必须显示为 账户管理员。 |
角色和职责
| Role | Responsibilities | 启用自动标识管理后的行为 |
|---|---|---|
| 帐户管理员 | 启用自动标识管理。 配置、暂停或禁用帐户级 SCIM。 执行验证和外部 ID 检查。 将组分配到工作区。 管理帐户级标识和 Unity 目录权限。 评审与标识相关的审核日志。 | 负责启用、验证和回滚自动身份管理。 根据需要运行外部 ID 配置错误缓解脚本。 |
| 工作区管理员 | 不控制自动标识管理或 SCIM。 使用已分配给工作区的标识管理工作区级 ACL。 执行迁移后测试并报告问题。 | 可以直接从工作区搜索和预配Microsoft Entra ID标识(Settings > Identity and Access > 管理用户)。 无法启用或禁用自动标识管理。 |
| 工作区用户 | 登录、运行笔记本和作业,并使用分配的计算资源。 使用预配标识共享资产。 | 活跃会话没有变化。 启用自动身份管理后,首次登录时会通过 JIT 为用户完成预配。 权限仍通过与之前相同的组成员关系来确定。 可以与 Microsoft Entra ID 标识共享资产。 |
保持不变的内容
启用自动标识管理时,将保留以下内容:
- SCIM 同步的组成员身份:自动标识管理不会删除最初由 SCIM 同步的组成员身份。 这是有意这样设计的,以避免导致依赖这些成员资格的作业和权限失效。
- 现有权限:工作区和 Unity 目录权限继续针对同一主体解析。
- 活动会话:自动标识管理不会强制用户注销或中断正在运行的会话。
- 运行作业:使用当前凭据进行身份验证的服务主体将继续工作。
- 工作区本地组:自动标识管理仅管理帐户级标识。 工作区本地组继续工作,但不会从Microsoft Entra ID同步。
- Databricks 专用服务主体:未在 Microsoft Entra ID 中注册的服务主体不受影响。
在没有现有 SCIM 预配的情况下迁移
如果Azure Databricks帐户没有帐户级别的 SCIM 预配,请使用此路径。 这是最简单的迁移路径。
审核按显示名称引用服务主体的自动化。
启用自动标识管理后,Azure Databricks将Microsoft Entra ID视为权威源,并使用来自Microsoft Entra ID的显示名称覆盖自定义服务主体显示名称。 若要防止工作流中断,请更新任何自动化(如 Terraform 配置或脚本),以按其应用程序 ID 而不是显示名称引用服务主体。
启用自动标识管理:
- 作为帐户管理员,登录到帐户控制台。
- 单击“ 安全性”。
- 在 “用户预配 ”选项卡上,将 “自动标识管理 ”切换为 “已启用”。
- 请等待 5 到 10 分钟,使更改生效。
(可选)配置帐户访问拒绝列表。 使用帐户访问拒绝列表来限制特定Microsoft Entra ID标识访问Azure Databricks帐户。 请参阅 拒绝对帐户的标识访问权限。
(可选)通知工作区管理员。 与工作区管理员共享 自动标识管理概述 ,以便他们了解预期的行为更改,包括实时预配。
启用自动标识管理后,完成 验证步骤。
从现有 SCIM 预配迁移
如果Azure Databricks帐户当前使用帐户级 SCIM 预配,请使用此路径。 Databricks 建议在现有 SCIM 预配和并行运行的同时启用自动标识管理。 验证自动标识管理正常工作后,可以禁用 SCIM。
启用自动标识管理时发生哪些更改
| 行为 | 在自动标识管理之前 | 自动身份管理后 |
|---|---|---|
| 身份来源 | SCIM 按计划将用户、组和服务主体从Microsoft Entra ID推送到帐户 SCIM 终结点。 | Azure Databricks使用图形 API直接从Microsoft Entra ID读取标识。 首次使用或登录时,预配是实时的(JIT)。 |
| 组成员资格 | 仅限直属成员。 嵌套组必须在 Microsoft Entra ID 或 SCIM 范围规则中展平。 | 传递组成员身份会自动展开。 |
| 组成员身份同步延迟 | 等待下一个 SCIM 周期,通常为 40 分钟。 | 浏览器登录:最多 5 分钟。 非浏览器(作业、CLI、服务主体):最多 40 分钟。 |
| 服务主体预配 | 服务主体由 SCIM 范围规则推送。 | 服务主体是在首次经过身份验证的使用时预配的。 无需进行 SCIM 推送。 |
| Microsoft Entra ID 中的组重命名 | SCIM 将在下一个同步周期更新显示名称。 | 组名称不会主动重新同步。 帐户管理员在帐户控制台中打开组详细信息页会触发刷新。 还可以调用 resolveByExternalId API 来触发同步。 |
准备迁移
从 Databricks 知识库运行自动标识管理启用准备脚本。
此脚本可识别并解决 Azure Databricks 与 Microsoft Entra ID 之间的外部 ID 不一致问题,并识别哪些工作区已启用身份联合。
注释
自动标识管理使用 Microsoft Entra ID
objectId作为同步标识的权威链接。 如果Azure Databricks中主体的externalId与其Microsoft Entra IDobjectId不匹配,则自动标识管理可能会创建重复的主体。 在启用自动标识管理以识别和修复任何不匹配之前运行发现脚本。审核按显示名称引用服务主体的自动化。
启用自动标识管理后,Azure Databricks将Microsoft Entra ID视为权威源,并使用来自Microsoft Entra ID的显示名称覆盖自定义服务主体显示名称。 若要防止工作流中断,请更新任何自动化(如 Terraform 配置或脚本),以按其应用程序 ID 而不是显示名称引用服务主体。
(可选)配置帐户访问拒绝列表。 请参阅 拒绝对帐户的标识访问权限。
(可选)通知工作区管理员。 与工作区管理员共享 自动标识管理概述 ,以便他们了解预期的行为更改,包括实时预配。
启用自动标识管理
- 作为帐户管理员,登录到帐户控制台。
- 单击“ 安全性”。
- 在 “用户预配 ”选项卡上,将 “自动标识管理 ”切换为 “已启用”。
- 请等待 5 到 10 分钟,使更改生效。
在两者处于活动状态时,自动标识管理和 SCIM 预配并行运行。 SCIM 继续管理最初预配的标识。 验证自动标识管理后,可以禁用 SCIM。 请参阅 “禁用 SCIM 预配”。
验证自动标识管理
启用自动标识管理后,请验证它是否正确同步标识。
按角色进行测试
让每个角色的代表用户运行以下测试。
帐户管理员
从帐户控制台预配用户:
- 转到 帐户控制台 > 用户管理 > 用户 ,然后单击“ 添加用户”。
- 搜索 Microsoft Entra ID 中尚未在 Azure Databricks 中预配的用户
- 选择该用户,然后单击“ 添加用户”。
- 确认用户出现在状态为 Active 的Azure Databricks中。
在账户控制台中预配组:
- 转到 帐户控制台 > 用户管理 > 组 ,然后单击“ 添加组”。
- 搜索 Microsoft Entra ID 中尚未在 Azure Databricks 中预配的组。
- 确认该组显示在Azure Databricks中。 组成员在登录时会被即时预配。
验证工作区访问权限:
- 将上一步中的组分配到工作区。
- 让该组中的一名成员通过身份验证访问工作区。
- 确认身份验证成功,并在Azure Databricks中预配用户并将其添加到工作区。
工作区管理员
从工作区预配一个用户:
- 转到 “设置 > 标识”和“访问 > 管理用户 ”,然后单击“ 添加用户”。
- 在 Microsoft Entra ID 中搜索尚未在 Azure Databricks 中预配的用户。
- 确认用户显示状态为“活动”。
从工作区预配组:
- 打开工作区资产(如查询或仪表板),然后单击“ 共享”。
- 搜索 Microsoft Entra ID 中尚未在 Azure Databricks 中预配的组,并将资产共享给该组。
- 确认在Azure Databricks中预配了该组。
- 让该组的成员向工作区进行身份验证,并验证他们是否可以访问共享资产。
在审核日志中验证自动标识管理
查询 system.access.audit 表,确认自动标识管理已启用。 诸如 add、addPrincipalToGroup、createGroup 和 updateUser 等事件的非零计数表明,标识正在同步。
SELECT action_name, count(*) AS n
FROM system.access.audit
WHERE request_params.endpoint = 'autoUserCreation'
AND event_time > current_timestamp() - INTERVAL 2 DAYS
GROUP BY action_name
ORDER BY n DESC;
有关自动标识管理审核事件的详细信息,请参阅 审核自动标识管理事件。
禁用自动标识管理
有关禁用自动标识管理的步骤,请参阅 “禁用自动标识管理”。
从 SCIM 迁移后禁用自动标识管理时:
- 由自动标识管理创建的标识保留在Azure Databricks中,但不再与Microsoft Entra ID同步。
- 由自动身份管理同步的组成员身份信息不再用于确定权限。 以前通过这些组成员身份继承权限的用户将失去访问权限。
- 在自动标识管理处于活动状态时对Azure Databricks进行身份验证的用户可以继续访问他们以前查看的仪表板,但其组成员身份不会从Microsoft Entra ID刷新。
- 在禁用自动标识管理后,从未访问过Azure Databricks的用户无法访问它,即使他们属于Microsoft Entra ID中分配的组也是如此。
禁用 SCIM 预配
验证自动标识管理后,可以选择禁用 SCIM 预配。 仅在确认您的环境满足以下所有条件后,才禁用 SCIM:
- 没有嵌套组:标识结构不依赖于Microsoft Entra ID中的嵌套组成员身份。
-
外部 ID 对齐:组已使用 SCIM Connector 应用从 Microsoft Entra ID 复制到 Azure Databricks,因此 Azure Databricks 中的
externalId值与相应的 Microsoft Entra IDobjectId值一致。 使用客户实例发现脚本识别并解决任何不匹配问题。 - 没有本地成员身份修改:组成员身份仅通过 SCIM 进行管理,并且未在Azure Databricks中手动修改。 客户实例发现脚本可以检测本地修改的成员身份。
如果环境不符合所有这些条件,Databricks 建议继续并行运行 SCIM 预配和自动标识管理。
禁用 SCIM 后的已知限制
持久 SCIM 同步组成员身份
禁用 SCIM 后由 SCIM 同步的组成员身份将保留。 例如,如果子组 C 嵌套在Microsoft Entra ID中的父组 P 下,并且 C 到 P 关系稍后在 Microsoft Entra ID 中删除,则用户仍可能会继承 P 的权限,因为成员身份仍保留在Azure Databricks中。 Databricks 建议在禁用 SCIM 之前,先清理外部组中的直接组成员关系。
具有嵌套组结构的环境
对于使用嵌套组结构的环境,Databricks 建议继续运行 SCIM 预配以及自动标识管理,以保持嵌套组成员身份同步。
手动修改的群组成员资格
如果在Azure Databricks中手动编辑了组成员身份,则禁用 SCIM 后,这些成员身份不会与Microsoft Entra ID同步,并且可能会随着时间推移而过时。 按照 Databricks 知识库 中的自动标识管理启用准备脚本中的说明,在禁用 SCIM 之前识别和修复手动修改的组成员身份。
迁移注意事项
嵌套组必须显式分配到工作区
使用嵌套Microsoft Entra ID组时,子组不会自动可用于工作区中的资源共享。 若要授予对工作区对象(如笔记本或查询)的子组权限,必须直接将该子组分配给工作区,即使已为其父组分配也是如此。
例如,如果父组 P 包含子组 C,并且仅向工作区分配 P,则在分配 C 本身之前,无法向 C 授予对工作区资源的权限。
组成员是实时预配的
与 SCIM 不同,自动标识管理不会主动将组成员身份同步到Azure Databricks。 当组成员在 Azure Databricks 中有活动时(例如登录时),或者账户管理员或工作区管理员显式将其添加到组中时,这些成员会被预配。
已删除的用户不会立即停用
从Microsoft Entra ID中删除用户后,他们将继续在Azure Databricks中显示为活动状态。 他们无法登录,但其状态不会自动更新。
电子邮件地址更改创建新用户
如果用户的电子邮件地址在Microsoft Entra ID发生更改(例如,alice@example.com变为 alice-new@example.com),则自动标识管理会在Azure Databricks中创建一个新用户,而不是更新现有记录。 这与当前的 SCIM 行为一致。 有关电子邮件地址更改,请联系 Databricks 支持部门。
SCIM API 不返回通过自动标识管理预配的成员
SCIM GET /groups/{id} API 仅返回通过 Azure Databricks UI 或 SCIM 预配的组成员。 它不会返回通过自动标识管理预配的用户或存在于Microsoft Entra ID但尚未在Azure Databricks中预配的用户。
Unity Catalog 权限需要已预配的身份
Unity Catalog 权限授予 API 不能引用尚未在 Azure Databricks 中预配的标识。 在授予某个身份权限之前,请先使用 resolveByExternalId API 对该身份进行预配。 预配标识后,可以照常授予权限。
按名称引用主体的函数(例如 is_account_group_member())还需要首先预配主体。
工作区本地组不由自动标识管理进行管理
自动身份管理不会管理工作区本地组。 工作区本地组及其分配的权限仍可继续正常使用,但成员变更必须在自动身份管理之外手动处理。
Databricks 建议将工作区本地组迁移到帐户级组,以便自动标识管理可以管理其成员身份。 请参阅将工作区本地组迁移到帐户组。