组映射
组映射功能可让您将身份提供商(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:backend 和 whale:desktop。
提示
将您的身份提供商(IdP)中的组名与Docker团队进行匹配。当组同步时,Docker会自动创建对应团队(若该团队尚不存在)。
以下列出了支持的组映射属性:
| 属性 | 描述 |
|---|---|
| id | 以UUID格式表示的组的唯一标识符。此属性为只读。 |
| 显示名称 | 按照组映射格式定义的组名称:organization:team。 |
| 成员 | 该组的成员用户列表。 |
| members(x).value | 该组成员的用户唯一标识符。成员通过ID进行引用。 |
使用组映射的一般步骤如下:
- 在您的身份提供商(IdP)中,创建使用
organization:team格式的组。 - 将用户添加到组中。
- 将您在身份提供商(IdP)中创建的 Docker 应用程序添加到该组。
- 在身份提供者(IdP)中添加属性。
- 将用户组推送到 Docker。
具体配置可能因您的身份提供商(IdP)而异。您可以使用 单点登录(SSO)的组映射,或同时启用 单点登录(SSO)和SCIM。
使用组映射配合单点登录(SSO)
以下步骤介绍了如何为使用SAML身份验证方法的SSO连接设置和使用组映射。请注意,SSO的组映射不支持Azure AD(OIDC)身份验证方法。此外,这些配置不需要SCIM。
您的身份提供商(IdP)用户界面可能与以下步骤略有不同。您可以参考 Okta文档进行核对。
设置组映射:
- 登录 Okta 并打开您的应用程序。
- 转到您应用的 SAML 设置 页面。
- 在组属性声明(可选)部分中,按以下方式配置:
- 名称:
groups - 名称格式:
Unspecified - 筛选器:
Starts with+organization:,其中organization为您的组织名称 该筛选器选项将过滤掉不属于您Docker组织的组。
- 名称:
- 通过选择目录,然后选择组来创建您的组。
- 请按格式
organization:team添加您的群组,该格式需与您组织和团队在 Docker 中的名称一致。 - 将用户分配到您创建的用户组中。
下次您将用户组与 Docker 同步时,您的用户将映射到您在 Docker 中定义的用户组。
您的身份提供商(IdP)的用户界面可能与以下步骤略有不同。您可参考 Microsoft Entra ID 文档进行核对。
设置组映射:
- 登录到 Entra ID 并打开您的应用程序。
- 选择 管理,然后选择 单点登录。
- 选择 添加组声明。
- 在“组声明”部分中,选择分配给应用程序的组仅云组显示名称(预览版)。
- 选择 高级选项,然后选择 筛选组 选项。
- 配置属性如下所示:
- 要匹配的属性:
Display name - 匹配方式:
Contains - 字符串:
:
- 要匹配的属性:
- 选择 保存。
- 选择 组、所有组,然后选择 新建组 以创建您的组。
- 将用户分配到您创建的用户组中。
下次您将用户组与 Docker 同步时,您的用户将映射到您在 Docker 中定义的用户组。
使用 SCIM 进行组映射
以下步骤介绍了如何使用SCIM设置和使用组映射。开始之前,请确保您已配置好SCIM。
您的身份提供商(IdP)用户界面可能与以下步骤略有不同。您可以参考 Okta文档进行核对。
设置您的用户组:
- 登录 Okta 并打开您的应用程序。
- 选择 应用程序,然后选择 配置 和 集成。
- 选择 编辑 以在您的连接上启用组,然后选择 推送组。
- 选择 保存。保存此配置将为您的应用添加 推送组 标签页。
- 通过导航至目录并选择组来创建您的组。
- 请按格式
organization:team添加您的群组,该格式需与您组织和团队在 Docker 中的名称一致。 - 将用户分配到您创建的用户组中。
- 返回集成页面,然后选择推送组选项卡,以打开可控制和管理组配置的视图。
- 选择 推送组,然后选择 按规则查找组。
- 按照以下规则配置组:
- 输入规则名称,例如
Sync groups with Docker Hub - 按名称匹配组,例如对于多组织环境,匹配以
docker:开头或包含:的组 - 如果启用立即按规则推送组,则在组或组分配发生更改时将立即同步。如果您不希望手动推送组,请启用此选项。
- 输入规则名称,例如
在 按规则 下找到您的新规则,位于 已推送组 列中。匹配该规则的组将显示在右侧的组表中。
要将此表中的组推送到:
- 选择 Okta 中的组。
- 选择 推送状态 下拉菜单。
- 选择 立即推送。
您的身份提供商(IdP)的用户界面可能与以下步骤略有不同。您可参考 Microsoft Entra ID 文档进行核对。
配置组映射前,请先完成以下步骤:
- 登录到 Microsoft Entra ID 并访问您的应用程序。
- 在您的应用程序中,选择 部署,然后选择 映射。
- 选择 provision Microsoft Entra ID 组。
- 选择 显示高级选项,然后选择 编辑属性列表。
- 将
externalId类型更新为reference,然后选中 多值 复选框,并选择引用的对象属性urn:ietf:params:scim:schemas:core:2.0:Group。 - 选择 保存,然后 是 以确认。
- 前往 配置。
- 切换 供应状态 为 开启,然后选择 保存。
接下来,设置组映射:
- 跳转到应用概览页面。
- 在 provision user accounts( provision 用户账户)下,选择 Get started(开始使用)。
- 选择 添加用户/组。
- 使用
organization:team格式创建您的组。 - 将该组分配给供应组。
- 选择 开始配置 以启动同步。
为进行验证,请选择 监控,然后选择 配置日志,以查看您的组是否已成功配置。在您的 Docker 组织中,您可以确认组已正确配置,且成员已添加到相应的团队中。
一旦完成,通过单点登录(SSO)登录Docker的用户将自动被添加到身份提供商(IdP)中映射的组织和团队中。
提示
启用 SCIM 以利用自动用户供应和取消供应功能。如果您未启用 SCIM,则仅会自动供应用户;您必须手动取消供应用户。
更多资源
以下视频演示了如何在启用SCIM的情况下,将您的身份提供商(IdP)与组映射配合使用: