组映射

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

提示

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

组映射的工作原理

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

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

使用组映射

要通过 IdP 将用户分配到 Docker 团队,您必须按照命名模式在 IdP 中创建组:。例如,如果您的组织名为 “moby”,并且您想要管理“开发人员”团队,则 IdP 中的组名称应为 .在此示例中,在 IdP 中添加到此组的任何用户都会自动分配到 Docker 中的“开发人员”团队。organization:teammoby:developers

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

提示

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

下面列出了支持的组映射属性:

属性描述
身份证组的唯一 ID,采用 UUID 格式。此属性是只读的。
displayName (显示名称)组映射格式后面的组名称:。organization:team
成员属于此组成员的用户列表。
成员 (x) .value作为此组成员的用户的唯一 ID。成员按 ID 引用。

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

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

确切的配置可能因您的 IdP 而异。您可以将组映射与 SSO 一起使用,也可以在启用 SSO 和 SCIM 的情况下使用组映射。

将组映射与 SSO 配合使用

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


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

要设置组映射:

  1. 登录到 Okta 并打开您的应用程序。
  2. 导航到应用程序的 SAML 设置页面。
  3. Group Attribute Statements (optional) 部分中,按如下方式进行配置:
    • 名称groups
    • 名称格式Unspecified
    • 筛选器:+其中是组织的名称 filter 选项将筛选出不隶属于您的 Docker 组织的组。Starts withorganization:organization
  4. 通过选择 Directory (目录),然后选择 Groups (组) 来创建组。
  5. 使用与 Docker 中的组织和团队名称匹配的格式添加组。organization:team
  6. 将用户分配到您创建的组。

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

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

要设置组映射:

  1. 登录到 Entra ID 并打开您的应用程序。
  2. 选择 Manage (管理),然后选择 Single sign-on(单点登录)。
  3. 选择 Add a group claim(添加组声明)。
  4. 在 Group Claims 部分中,选择分配给应用程序的 组 源属性 仅限云组显示名称 (预览).
  5. 选择 Advanced options,然后选择 Filter groups 选项。
  6. 按如下方式配置属性:
    • 要匹配的属性Display name
    • 匹配Contains
    • 字符串:
  7. 选择 Save (保存)。
  8. 选择 Groups(组)、All groups(所有组),然后选择 New group(新建组)以创建您的组。
  9. 将用户分配到您创建的组。

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


将组映射与 SCIM 配合使用

以下步骤介绍如何通过 SCIM 设置和使用组映射。在开始之前,请确保先设置 SCIM


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

要设置组:

  1. 登录到 Okta 并打开您的应用程序。
  2. 选择 Applications(应用程序),然后选择 Provisioning(配置)和 Integration(集成)。
  3. 选择 编辑 以在您的连接上启用组,然后选择 推送组
  4. 选择 Save (保存)。保存此配置会将 Push Groups 选项卡添加到您的应用程序中。
  5. 通过导航到 Directory 并选择 Groups 来创建您的组。
  6. 使用与 Docker 中的组织和团队名称匹配的格式添加组。organization:team
  7. 将用户分配到您创建的组。
  8. 返回到 集成 页面,然后选择 推送组 选项卡以打开视图,您可以在其中控制和管理组的预置方式。
  9. 选择 Push Groups (推送组),然后选择 Find groups by rule (按规则查找组)。
  10. 按规则配置组,如下所示:
    • 输入规则名称,例如Sync groups with Docker Hub
    • 按名称匹配组,例如,对于多组织,则为 starts with 或 containsdocker::
    • 如果启用 Immediately push groups by rule (按规则立即推送组),则一旦组或组分配发生更改,就会立即进行同步。如果您不想手动推送组,请启用此选项。

Push Groups (推送的组) 列中的 By rule (按规则) 下找到您的新规则。与该规则匹配的组列在右侧的 groups 表中。

要推送此表中的组,请执行以下操作:

  1. 选择 Okta 中的组
  2. 选择 Push Status 下拉列表。
  3. 选择 Push Now (立即推送)。

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

在配置组映射之前,请完成以下操作:

  1. 登录到 Entra ID 并转到您的应用程序。
  2. 在您的应用程序中,选择 Provisioning,然后选择 Mappings
  3. 选择 Provision Microsoft Entra ID Groups.
  4. 选择 Show advanced options(显示高级选项),然后选择 Edit attribute list(编辑属性列表)。
  5. 将类型更新为 ,然后选中 Multi-Value 复选框并选择引用的对象属性 。externalIdreferenceurn:ietf:params:scim:schemas:core:2.0:Group
  6. 选择 保存,然后选择 进行确认。
  7. 转到 Provisioning (预置)。
  8. Provision Status (配置状态) 切换为 On(打开),然后选择 Save(保存)。

接下来,设置组映射:

  1. 转到应用程序概述页面。
  2. Provision user accounts (预配用户帐户) 下,选择 Get started (开始使用)。
  3. 选择 Add user/group(添加用户/组)。
  4. 使用格式创建您的组。organization:team
  5. 将组分配给供应组。
  6. 选择 Start provisioning (开始配置) 以开始同步。

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


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

提示

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

更多资源

以下视频演示了如何在启用 SCIM 的情况下将组映射与 IdP 结合使用: