组映射

组映射允许您将用户组从您的身份提供商 (IdP) 与 Docker 组织中的团队同步。这将自动化团队成员管理,根据您 IdP 中的更改保持您的 Docker 团队最新。配置单点登录 (SSO)后,您可以使用组映射。

提示

组映射非常适合将用户添加到多个组织或一个组织内的多个团队。如果您不需要设置多组织或多团队分配,您可以使用 SCIM 用户级属性

组映射的工作原理

启用组映射后,当用户通过 SSO 进行身份验证时,您的 IdP 会与 Docker 共享关键属性,例如用户的电子邮件地址、姓名和组。Docker 使用这些属性创建或更新用户的个人资料,以及管理其团队和组织分配。使用组映射,用户在 Docker 中的团队成员身份会自动反映在您的 IdP 组中所做的更改。

需要注意的是,Docker 使用用户的电子邮件地址作为唯一标识符。每个 Docker 帐户必须始终具有唯一的电子邮件地址。

使用组映射

要通过您的 IdP 将用户分配给 Docker 团队,您必须在您的 IdP 中创建遵循以下命名模式的组:organization:team。例如,如果您的组织名为“moby”,并且您想要管理“developers”团队,则您 IdP 中的组名应为moby:developers。在此示例中,添加到您 IdP 中此组的任何用户都会自动分配到 Docker 中的“developers”团队。

您还可以使用此格式将用户分配给多个组织。例如,要将用户添加到“moby”组织中的“backend”团队和“whale”组织中的“desktop”团队,组名将为moby:backendwhale:desktop

提示

将 IdP 中的组名与您的 Docker 团队匹配。同步组时,如果 Docker 中不存在团队,则会创建一个团队。

以下是支持的组映射属性列表

属性描述
id组的唯一 ID,采用 UUID 格式。此属性为只读。
displayName组的名称,遵循组映射格式:organization:team
members此组成员的用户列表。
members(x).value此组成员用户的唯一 ID。成员通过 ID 引用。

使用组映射的一般步骤如下

  1. 在您的 IdP 中,创建具有organization:team格式的组。
  2. 将用户添加到组中。
  3. 将您在 IdP 中创建的 Docker 应用程序添加到组中。
  4. 在 IdP 中添加属性。
  5. 将组推送到 Docker。

确切的配置可能因您的 IdP 而异。您可以使用与 SSO 结合使用的组映射,或与 SSO 和启用的 SCIM一起使用。

将组映射与 SSO 一起使用

以下步骤描述了如何使用采用 SAML 身份验证方法的 SSO 连接设置和使用组映射。请注意,使用 Azure AD (OIDC) 身份验证方法不支持与 SSO 结合使用的组映射。此外,这些配置不需要 SCIM。


您 IdP 的用户界面可能与以下步骤略有不同。您可以参考Okta 文档进行验证。

设置组映射

  1. 登录 Okta 并打开您的应用程序。
  2. 导航到应用程序的SAML 设置页面。
  3. 组属性语句(可选)部分中,配置如下
    • 名称groups
    • 名称格式Unspecified
    • 过滤器以...开头 + organization:,其中organization是您组织的名称。过滤器选项将过滤掉与您的 Docker 组织无关的组。
  4. 通过选择目录,然后选择来创建您的组。
  5. 使用与您在 Docker 中的组织和团队名称匹配的organization:team格式添加您的组。
  6. 将用户分配到您创建的组。

下次您将组与 Docker 同步时,您的用户将映射到您定义的 Docker 组。

您的 IdP 用户界面可能与以下步骤略有不同。您可以参考Entra ID 文档 进行验证。

设置组映射

  1. 登录 Entra ID 并打开您的应用程序。
  2. 选择 **管理**,然后选择 **单点登录**。
  3. 选择 **添加组声明**。
  4. 在“组声明”部分,选择 **分配给应用程序的组**,其源属性为 **仅限云的组显示名称(预览)**。
  5. 选择 **高级选项**,然后选择 **筛选组** 选项。
  6. 按如下方式配置属性
    • **要匹配的属性**:显示名称
    • **匹配方式**:包含
    • **字符串**::
  7. 选择 **保存**。
  8. 选择 **组**、**所有组**,然后选择 **新建组** 来创建您的组。
  9. 将用户分配到您创建的组。

下次您将组与 Docker 同步时,您的用户将映射到您定义的 Docker 组。


将组映射与 SCIM 一起使用

以下步骤描述了如何使用 SCIM 设置和使用组映射。在开始之前,请确保您已设置 SCIM


您的 IdP 用户界面可能与以下步骤略有不同。您可以参考Okta 文档 进行验证。

设置您的组

  1. 登录 Okta 并打开您的应用程序。
  2. 选择 **应用程序**,然后选择 **预配** 和 **集成**。
  3. 选择 **编辑** 以启用连接上的组,然后选择 **推送组**。
  4. 选择 **保存**。保存此配置将向您的应用程序添加 **推送组** 选项卡。
  5. 通过导航到 **目录** 并选择 **组** 来创建您的组。
  6. 使用与您在 Docker 中的组织和团队名称匹配的organization:team格式添加您的组。
  7. 将用户分配到您创建的组。
  8. 返回 **集成** 页面,然后选择 **推送组** 选项卡以打开可以控制和管理组预配方式的视图。
  9. 选择 **推送组**,然后选择 **按规则查找组**。
  10. 按如下方式配置组规则
    • 输入规则名称,例如 与 Docker Hub 同步组
    • 按名称匹配组,例如以 docker: 开头或包含 :(用于多组织)
    • 如果您启用 **立即按规则推送组**,则只要组或组分配发生更改,同步就会立即发生。如果您不想手动推送组,请启用此选项。

在 **推送组** 列的 **按规则** 下找到您的新规则。与该规则匹配的组列在右侧的组表中。

要推送此表中的组

  1. 选择 **Okta 中的组**。
  2. 选择 **推送状态** 下拉菜单。
  3. 选择 **立即推送**。

您的 IdP 用户界面可能与以下步骤略有不同。您可以参考Entra ID 文档 进行验证。

配置组映射之前,请完成以下步骤

  1. 登录 Entra ID 并转到您的应用程序。
  2. 在您的应用程序中,选择 **预配**,然后选择 **映射**。
  3. 选择 **预配 Microsoft Entra ID 组**。
  4. 选择 **显示高级选项**,然后选择 **编辑属性列表**。
  5. externalId 类型更新为 reference,然后选择 **多值** 复选框并选择引用的对象属性 urn:ietf:params:scim:schemas:core:2.0:Group
  6. 选择 **保存**,然后选择 **是** 以确认。
  7. 转到 **预配**。
  8. 将 **预配状态** 切换为 **开启**,然后选择 **保存**。

接下来,设置组映射

  1. 转到应用程序概述页面。
  2. 在 **预配用户帐户** 下,选择 **开始**。
  3. 选择 **添加用户/组**。
  4. 使用 organization:team 格式创建您的组。
  5. 将组分配给预配组。
  6. 选择 **开始预配** 以启动同步。

要进行验证,请选择 **监控**,然后选择 **预配日志** 以查看您的组是否已成功预配。在您的 Docker 组织中,您可以检查组是否已正确预配以及成员是否已添加到相应的团队。


完成后,通过 SSO 登录 Docker 的用户将自动添加到 IdP 中映射的组织和团队。

提示

启用 SCIM 以利用自动用户预配和取消预配。如果您不启用 SCIM,则只会自动预配用户。您必须手动取消预配它们。

更多资源

以下视频演示了如何在启用 SCIM 的情况下使用您的 IdP 进行组映射