组映射
组映射允许你将身份提供商 (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:backend
和 whale:desktop
。
提示
将 IdP 中的组名与你的 Docker 团队匹配。当组同步时,如果团队尚不存在,Docker 会创建该团队。
以下列出了支持的组映射属性
属性 | 描述 |
---|---|
id | 组的唯一 ID,采用 UUID 格式。此属性是只读的。 |
displayName | 按照组映射格式 organization:team 的组名。 |
members | 此组的成员用户列表。 |
members(x).value | 作为此组成员的用户的唯一 ID。成员通过 ID 引用。 |
使用组映射的一般步骤如下
- 在你的 IdP 中,创建采用
organization:team
格式的组。 - 将用户添加到组中。
- 将你在 IdP 中创建的 Docker 应用程序添加到组中。
- 在 IdP 中添加属性。
- 将组推送到 Docker。
具体配置可能因你的 IdP 而异。你可以将组映射与 SSO 一起使用,或者与启用 SSO 和 SCIM 一起使用。
将组映射与 SSO 一起使用
以下步骤描述了如何设置和使用采用 SAML 认证方法的 SSO 连接的组映射。请注意,不支持使用 Azure AD (OIDC) 认证方法的 SSO 组映射。此外,这些配置不需要 SCIM。
你的 IdP 的用户界面可能与以下步骤略有不同。你可以参考 Okta 文档 进行验证。
如何设置组映射
- 登录到 Okta 并打开你的应用程序。
- 导航到你的应用程序的 SAML Settings 页面。
- 在 Group Attribute Statements (可选) 部分,按如下方式配置:
- 名称:
groups
- 名称格式:
Unspecified
- 过滤器:
Starts with
+organization:
,其中organization
是你的组织名称。此过滤选项将过滤掉与你的 Docker 组织无关的组。
- 名称:
- 通过选择 Directory,然后选择 Groups 来创建你的组。
- 使用与 Docker 中组织和团队名称匹配的
organization:team
格式添加你的组。 - 将用户分配到你创建的组。
下次将组与 Docker 同步时,你的用户将映射到你定义的 Docker 组。
你的 IdP 的用户界面可能与以下步骤略有不同。你可以参考 Entra ID 文档 进行验证。
如何设置组映射
- 登录到 Entra ID 并打开你的应用程序。
- 选择 Manage,然后选择 Single sign-on。
- 选择 Add a group claim。
- 在 Group Claims 部分,选择 Groups assigned to the application,源属性为 Cloud-only group display names (预览)。
- 选择 Advanced options,然后选择 Filter groups 选项。
- 按如下方式配置属性:
- 匹配属性:
Display name
- 匹配方式:
Contains
- 字符串:
:
- 匹配属性:
- 选择 Save。
- 选择 Groups,All groups,然后选择 New group 来创建你的组。
- 将用户分配到你创建的组。
下次将组与 Docker 同步时,你的用户将映射到你定义的 Docker 组。
将组映射与 SCIM 一起使用
以下步骤描述了如何设置和使用 SCIM 的组映射。开始之前,请确保你已先设置 SCIM。
你的 IdP 的用户界面可能与以下步骤略有不同。你可以参考 Okta 文档 进行验证。
如何设置你的组
- 登录到 Okta 并打开你的应用程序。
- 选择 Applications,然后选择 Provisioning,再选择 Integration。
- 选择 Edit 以在你的连接上启用组,然后选择 Push groups。
- 选择 Save。保存此配置会将 Push Groups 选项卡添加到你的应用程序。
- 通过导航到 Directory 并选择 Groups 来创建你的组。
- 使用与 Docker 中组织和团队名称匹配的
organization:team
格式添加你的组。 - 将用户分配到你创建的组。
- 返回到 Integration 页面,然后选择 Push Groups 选项卡以打开可以控制和管理组配置的视图。
- 选择 Push Groups,然后选择 Find groups by rule。
- 按如下方式按规则配置组:
- 输入规则名称,例如
Sync groups with Docker Hub
- 按名称匹配组,例如以
docker:
开头或包含:
用于多组织 - 如果你启用 Immediately push groups by rule,一旦组或组分配发生变化,就会立即进行同步。如果你不想手动推送组,请启用此选项。
- 输入规则名称,例如
在 Pushed Groups 列的 By rule 下找到你的新规则。匹配该规则的组将列在右侧的组表中。
要推送此表中的组
- 选择 Group in Okta。
- 选择 Push Status 下拉菜单。
- 选择 Push Now。
你的 IdP 的用户界面可能与以下步骤略有不同。你可以参考 Entra ID 文档 进行验证。
在配置组映射之前完成以下步骤
- 登录到 Entra ID 并转到你的应用程序。
- 在你的应用程序中,选择 Provisioning,然后选择 Mappings。
- 选择 Provision Microsoft Entra ID Groups。
- 选择 Show advanced options,然后选择 Edit attribute list。
- 将
externalId
类型更新为reference
,然后勾选 Multi-Value 复选框,并选择引用的对象属性urn:ietf:params:scim:schemas:core:2.0:Group
。 - 选择 Save,然后选择 Yes 确认。
- 转到 Provisioning。
- 将 Provision Status 切换为 On,然后选择 Save。
接下来,设置组映射
- 转到应用概述页面。
- 在 用户账户预配 下,选择 开始。
- 选择 添加用户/组。
- 使用
organization:team
格式创建你的组。 - 将该组分配到预配组。
- 选择 开始预配 以启动同步。
要验证,选择 监视,然后选择 预配日志,以查看你的组是否已成功预配。在你的 Docker 组织中,你可以检查组是否被正确预配以及成员是否已被添加到适当的团队中。
完成后,通过 SSO 登录到 Docker 的用户将自动添加到 IdP 中映射的组织和团队中。
提示
启用 SCIM 以利用自动用户预配和取消预配。如果你不启用 SCIM,则只会自动预配用户。你必须手动取消预配。
更多资源
以下视频演示了在启用 SCIM 的情况下如何使用组映射以及你的 IdP