自动身份管理准备报告

自动身份管理准备报告帮助账户管理员识别并解决 Azure Databricks 与身份提供者(IdP)之间的外部 ID 和组成员差异。 由于自动身份管理仅在身份联合工作区内工作,Databricks建议在账户内所有工作区启用身份联合。

有关自动标识管理的概述,请参阅 自动标识管理。 要迁移现有账户,请参见“迁移到使用 Microsoft Entra ID 的自动身份管理”。

关于差异

自动身份管理需要一个身份联合工作空间。 它使用 externalId 将 Azure Databricks 用户和组直接链接到你的身份提供者,具体而言,即 Microsoft Entra ID 中的对象 ID,或 Okta 中的用户 ID 或组 ID。

缺少或错误 externalId 的值会破坏元数据同步并产生重复身份。 由于 Azure Databricks 组成员是可编辑的,关闭 SCIM 配置时,它们也可能与身份提供者不同步,导致复杂情况。

注释

准备度报告仅对账户管理员开放。

报告发现的问题

该报告可帮助您发现 Azure Databricks 中已预配的身份,这些身份的外部 ID 在您的身份提供者中没有对应的匹配项。 它还检测 Azure Databricks 与身份提供者组成员之间的差异。 以下示例展示了报告帮助你发现和解决的问题。

产品中会出现重复身份

当两个同名但来源不同的身份出现在 Azure Databricks 管理界面时,通常是外部 ID 配置错误。 一个账户身份和一个身份提供者身份都会出现在管理员界面和共享对话框中。

要解决这个问题,请修正以下错误类别:

  • AIM_MISCONFIGURATION_CATEGORY_EXTERNAL_ID_NOT_IN_IDP
  • AIM_MISCONFIGURATION_CATEGORY_EXTERNAL_ID_MATCH_NAME_MISMATCH
  • AIM_MISCONFIGURATION_CATEGORY_NAME_MATCH_EXTERNAL_ID_MISMATCH

身份提供者中的组成员数量与 Azure Databricks 中的数量不匹配

Azure Databricks 的 UI 显示了身份提供者的成员数量。 该计数排除了存在于 Azure Databricks 组但不在身份提供者中的成员,尽管这些成员仍然授予权限。

要解决这个问题,请修正以下错误类别:

  • AIM_MISCONFIGURATION_CATEGORY_GROUP_HAS_LOCAL_MEMBERS

配置身份提供者组失败

当你导入身份提供者组时,可能会出现该组已存在于 Azure Databricks 的错误。 现有账户组通常保留该名称,因为 Azure Databricks 强制执行唯一的组名。

要解决这个问题,请修正以下错误类别:

  • AIM_MISCONFIGURATION_CATEGORY_NAME_MATCH_EXTERNAL_ID_MISMATCH

运行就绪情况报告

  1. 以账户管理员身份登录 Azure Databricks 账户控制台。
  2. 进入 安全>身份提供商设置
  3. 身份管理 部分,开始新扫描。 无论是否启用自动身份管理,都可以开始扫描。
  4. 等扫描处理完成。 这可能需要几分钟到数小时不等,具体取决于你的账户规模。
  5. 扫描完成后,在同一区域中打开扫描结果。

扫描完成后,您可以申请新的扫描。 要重新检查单个主体,请点击该主体上的刷新。 问题解决后,主体就不再出现在错误配置列表中。

你也可以下载完整扫描结果或单一类别结果的CSV。 请参阅 “解读报告输出 ”了解如何阅读CSV。

解释报表输出

CSV 导出包含以下列:

  • principalId:Azure Databricks 内部标识符。
  • principalType:主体 ID 对应的主体类型。 可以是用户、组或服务主体。
  • category:主ID的错误类别。 更多信息请参见 错误类别和修复
  • localPrincipalExternalId:Azure Databricks 中存储的外部 ID,用于已预配的 Azure Databricks 主体。
  • localPrincipalName: 存储在 Azure Databricks 中的 Azure Databricks 主体的用户名、应用 ID 或组名。
  • idpPrincipalExternalId:身份提供者中为给定主体存储的外部 ID。
  • idpPrincipalName:身份提供者中存储的用户名、应用ID或组名,针对特定主体。
  • localMembersWithExternalId:组成员的内部ID,分号分隔,这些成员拥有外部ID,但不属于身份提供者组。
  • localMembersWithoutExternalId:组成员的分号分隔内部ID,仅存在于Azure Databricks中,且没有外部ID。
  • hasMoreLocalMembersWithExternalIdlocalMembersWithExternalId 成员数量是否超过 CSV 中提供的数量。
  • hasMoreLocalMembersWithoutExternalIdlocalMembersWithoutExternalId 成员数量是否超过 CSV 中提供的数量。
  • failureReason:校长扫描失败的原因。

错误类别和修正

报告将问题归入以下错误类别。 每个类别都解释了错误的含义以及如何解决。 使用其类别对应的解决方案修复每个受影响的主体。

AIM_MISCONFIGURATION_CATEGORY_EXTERNAL_ID_NOT_IN_IDP

配置的身份有一个外部ID集合,但它与身份提供者中任何同类型的身份都不匹配。 externalId 配置错误。

要解决此问题:

  1. 将 的 externalId 值更新为有效值,或者移除它。 如果你设置了新的 externalId,请确保它未被其他身份使用。 参见 “为主体更新外部ID ”或 “为群移除外部ID”。
  2. 要确定应使用哪个externalId,请参阅AIM_MISCONFIGURATION_CATEGORY_NAME_MATCH_EXTERNAL_ID_MISMATCH类别。

如果此问题未解决:如果 externalId 应链接到某个身份提供者身份,你可能会看到重复的身份:一个带有错误的 externalId,另一个来自身份提供者。

AIM_MISCONFIGURATION_CATEGORY_EXTERNAL_ID_MATCH_NAME_MISMATCH

Azure Databricks 身份具有一个外部 ID,该 ID 映射到标识提供者中一个唯一名称不同的身份。

要解决此问题:

  • 用户和服务主体:更新 Azure Databricks 用户名。 提交支持工单以申请此更改。
  • 群组:检查是否有账户组保留组名(Azure Databricks 强制使用唯一的组名)。 如果是这样,请重命名账户组,让外部组能够认领该名称。

如果未解决:用户登录时,通常会创建第二个用户,用户名相同 externalId 但不同。 对于组,外部组通常无法将其名称与身份提供者对应组同步。

AIM_MISCONFIGURATION_CATEGORY_NAME_MATCH_EXTERNAL_ID_MISMATCH

Azure Databricks 标识的名称与某个身份提供者标识唯一匹配,但其 externalId 不匹配。

解决方法是在大多数情况下更新 Azure DatabricksexternalId,使其与身份提供者身份匹配。 确认这是否适合你的设置,因为这会根据你的身份提供商和本地数据而有所不同。 使用 idpPrincipalExternalId 字段找到要使用的 externalId,然后按照 更新主体的外部 ID 中的说明进行操作。

如果此问题未解决:你可能会看到重复的身份记录:一个带有错误的或缺失的 externalId,另一个来自身份提供程序。 配置同名身份提供者组也可能失败,因为账户组已经使用该名称(Azure Databricks强制组名唯一)。

AIM_MISCONFIGURATION_CATEGORY_GROUP_HAS_LOCAL_MEMBERS

Azure Databricks 组中有一些成员,无论是否带有 externalId,在身份提供者中都没有对应的成员资格。

要解决此问题,请将身份提供者设为权威来源:Databricks 建议使用 SCIM 从组中移除在本地添加的成员。 如果某个成员属于该组,请在身份提供者中创建该成员并将其添加到身份提供者组。 请参阅输出中的 localMembersWithExternalIdlocalMembersWithoutExternalId 字段,以了解受影响的成员。

如果未解决:成员继承身份提供者组的权限,但不出现在身份提供者中,这使得权限审计变得困难。 UI 中的成员计数只反映身份提供者成员,因此排除这些成员。

更新主体的外部 ID

要更新 externalId,请使用 Account SCIM API。 完整请求格式请参见 账户SCIM v2.1 API参考资料

Tip

记录你发出的 API 调用,以便在此过程中出现任何问题时回滚更改。

向该主体类型的端点发送 PATCH 请求:

PATCH https://<account-console-url>/api/2.1/accounts/<account-id>/scim/v2/<Users|Groups|ServicePrincipals>/<databricks-id>
{
  "schemas": ["urn:ietf:params:scim:api:messages:2.0:PatchOp"],
  "Operations": [
    {
      "op": "replace",
      "path": "externalId",
      "value": "<new-external-id>"
    }
  ]
}

删除组的外部 ID

要移除某个群组的 externalId,请使用账户 SCIM API。 将该值设置为空字符串。

注释

Azure Databricks 目前仅支持对组执行此操作。

PATCH https://<account-console-url>/api/2.1/accounts/<account-id>/scim/v2/Groups/<databricks-id>
{
  "schemas": ["urn:ietf:params:scim:api:messages:2.0:PatchOp"],
  "Operations": [
    {
      "op": "replace",
      "path": "externalId",
      "value": ""
    }
  ]
}

其他资源

Resource 说明
自动身份管理 自动身份管理及其如何在无SCIM的情况下同步身份的概述。
迁移到使用 Microsoft Entra ID 的自动身份管理 将现有账户迁移到自动身份管理。