组映射

组映射功能可让您将身份提供商(IdP)中的用户组与Docker组织中的团队进行同步。这能够自动化团队成员管理,确保您的Docker团队根据IdP中的变更保持最新。在配置了单点登录(SSO)后,您即可使用组映射功能。

提示

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

组映射的工作原理

启用组映射后,当用户通过 SSO 进行身份验证时,您的身份提供商(IdP)会向 Docker 共享关键属性,例如用户的电子邮件地址、姓名和所属组。Docker 会利用这些属性来创建或更新用户的个人资料,并管理其团队和组织归属。启用组映射后,用户在 Docker 中的团队成员身份将自动反映 IdP 组中所做的变更。

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

使用组映射

要通过您的身份提供商(IdP)为用户分配Docker团队,您必须在您的IdP中创建符合以下命名规则的组:organization:team。例如,若您的组织名为“moby”,且您希望管理“developers”(开发者)团队,则您在IdP中应将该组命名为moby:developers。在此示例中,任何被添加到该组的用户将自动被分配至Docker中的“developers”团队。

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

提示

将您的身份提供商(IdP)中的组名与Docker团队进行匹配。当组同步时,Docker会自动创建对应团队(若该团队尚不存在)。

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

属性描述
id以UUID格式表示的组的唯一标识符。此属性为只读。
显示名称按照组映射格式定义的组名称:organization:team
成员该组的成员用户列表。
members(x).value该组成员的用户唯一标识符。成员通过ID进行引用。

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

  1. 在您的身份提供商(IdP)中,创建使用 organization:team 格式的组。
  2. 将用户添加到组中。
  3. 将您在身份提供商(IdP)中创建的 Docker 应用程序添加到该组。
  4. 在身份提供者(IdP)中添加属性。
  5. 将用户组推送到 Docker。

具体配置可能因您的身份提供商(IdP)而异。您可以使用 单点登录(SSO)的组映射,或同时启用 单点登录(SSO)和SCIM

使用组映射配合单点登录(SSO)

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


您的身份提供商(IdP)用户界面可能与以下步骤略有不同。您可以参考 Okta文档进行核对。

设置组映射:

  1. 登录 Okta 并打开您的应用程序。
  2. 转到您应用的 SAML 设置 页面。
  3. 组属性声明(可选)部分中,按以下方式配置:
    • 名称groups
    • 名称格式Unspecified
    • 筛选器Starts with + organization:,其中organization为您的组织名称 该筛选器选项将过滤掉不属于您Docker组织的组。
  4. 通过选择目录,然后选择来创建您的组。
  5. 请按格式 organization:team 添加您的群组,该格式需与您组织和团队在 Docker 中的名称一致。
  6. 将用户分配到您创建的用户组中。

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

您的身份提供商(IdP)的用户界面可能与以下步骤略有不同。您可参考 Microsoft Entra ID 文档进行核对。

设置组映射:

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

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


使用 SCIM 进行组映射

以下步骤介绍了如何使用SCIM设置和使用组映射。开始之前,请确保您已配置好SCIM


您的身份提供商(IdP)用户界面可能与以下步骤略有不同。您可以参考 Okta文档进行核对。

设置您的用户组:

  1. 登录 Okta 并打开您的应用程序。
  2. 选择 应用程序,然后选择 配置集成
  3. 选择 编辑 以在您的连接上启用组,然后选择 推送组
  4. 选择 保存。保存此配置将为您的应用添加 推送组 标签页。
  5. 通过导航至目录并选择来创建您的组。
  6. 请按格式 organization:team 添加您的群组,该格式需与您组织和团队在 Docker 中的名称一致。
  7. 将用户分配到您创建的用户组中。
  8. 返回集成页面,然后选择推送组选项卡,以打开可控制和管理组配置的视图。
  9. 选择 推送组,然后选择 按规则查找组
  10. 按照以下规则配置组:
    • 输入规则名称,例如Sync groups with Docker Hub
    • 按名称匹配组,例如对于多组织环境,匹配以docker:开头或包含:的组
    • 如果启用立即按规则推送组,则在组或组分配发生更改时将立即同步。如果您不希望手动推送组,请启用此选项。

按规则 下找到您的新规则,位于 已推送组 列中。匹配该规则的组将显示在右侧的组表中。

要将此表中的组推送到:

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

您的身份提供商(IdP)的用户界面可能与以下步骤略有不同。您可参考 Microsoft Entra ID 文档进行核对。

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

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

接下来,设置组映射:

  1. 跳转到应用概览页面。
  2. provision user accounts( provision 用户账户)下,选择 Get started(开始使用)。
  3. 选择 添加用户/组
  4. 使用 organization:team 格式创建您的组。
  5. 将该组分配给供应组。
  6. 选择 开始配置 以启动同步。

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


一旦完成,通过单点登录(SSO)登录Docker的用户将自动被添加到身份提供商(IdP)中映射的组织和团队中。

提示

启用 SCIM 以利用自动用户供应和取消供应功能。如果您未启用 SCIM,则仅会自动供应用户;您必须手动取消供应用户。

更多资源

以下视频演示了如何在启用SCIM的情况下,将您的身份提供商(IdP)与组映射配合使用: