组映射
组映射允许您将用户组从您的身份提供商 (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 设置页面。
- 在组属性语句(可选)部分中,配置如下
- 名称:
groups
- 名称格式:
Unspecified
- 过滤器:
以...开头
+organization:
,其中organization
是您组织的名称。过滤器选项将过滤掉与您的 Docker 组织无关的组。
- 名称:
- 通过选择目录,然后选择组来创建您的组。
- 使用与您在 Docker 中的组织和团队名称匹配的
organization:team
格式添加您的组。 - 将用户分配到您创建的组。
下次您将组与 Docker 同步时,您的用户将映射到您定义的 Docker 组。
您的 IdP 用户界面可能与以下步骤略有不同。您可以参考Entra ID 文档 进行验证。
设置组映射
- 登录 Entra ID 并打开您的应用程序。
- 选择 **管理**,然后选择 **单点登录**。
- 选择 **添加组声明**。
- 在“组声明”部分,选择 **分配给应用程序的组**,其源属性为 **仅限云的组显示名称(预览)**。
- 选择 **高级选项**,然后选择 **筛选组** 选项。
- 按如下方式配置属性
- **要匹配的属性**:
显示名称
- **匹配方式**:
包含
- **字符串**:
:
- **要匹配的属性**:
- 选择 **保存**。
- 选择 **组**、**所有组**,然后选择 **新建组** 来创建您的组。
- 将用户分配到您创建的组。
下次您将组与 Docker 同步时,您的用户将映射到您定义的 Docker 组。
将组映射与 SCIM 一起使用
以下步骤描述了如何使用 SCIM 设置和使用组映射。在开始之前,请确保您已设置 SCIM。
您的 IdP 用户界面可能与以下步骤略有不同。您可以参考Okta 文档 进行验证。
设置您的组
- 登录 Okta 并打开您的应用程序。
- 选择 **应用程序**,然后选择 **预配** 和 **集成**。
- 选择 **编辑** 以启用连接上的组,然后选择 **推送组**。
- 选择 **保存**。保存此配置将向您的应用程序添加 **推送组** 选项卡。
- 通过导航到 **目录** 并选择 **组** 来创建您的组。
- 使用与您在 Docker 中的组织和团队名称匹配的
organization:team
格式添加您的组。 - 将用户分配到您创建的组。
- 返回 **集成** 页面,然后选择 **推送组** 选项卡以打开可以控制和管理组预配方式的视图。
- 选择 **推送组**,然后选择 **按规则查找组**。
- 按如下方式配置组规则
- 输入规则名称,例如
与 Docker Hub 同步组
- 按名称匹配组,例如以
docker:
开头或包含:
(用于多组织) - 如果您启用 **立即按规则推送组**,则只要组或组分配发生更改,同步就会立即发生。如果您不想手动推送组,请启用此选项。
- 输入规则名称,例如
在 **推送组** 列的 **按规则** 下找到您的新规则。与该规则匹配的组列在右侧的组表中。
要推送此表中的组
- 选择 **Okta 中的组**。
- 选择 **推送状态** 下拉菜单。
- 选择 **立即推送**。
您的 IdP 用户界面可能与以下步骤略有不同。您可以参考Entra ID 文档 进行验证。
配置组映射之前,请完成以下步骤
- 登录 Entra ID 并转到您的应用程序。
- 在您的应用程序中,选择 **预配**,然后选择 **映射**。
- 选择 **预配 Microsoft Entra ID 组**。
- 选择 **显示高级选项**,然后选择 **编辑属性列表**。
- 将
externalId
类型更新为reference
,然后选择 **多值** 复选框并选择引用的对象属性urn:ietf:params:scim:schemas:core:2.0:Group
。 - 选择 **保存**,然后选择 **是** 以确认。
- 转到 **预配**。
- 将 **预配状态** 切换为 **开启**,然后选择 **保存**。
接下来,设置组映射
- 转到应用程序概述页面。
- 在 **预配用户帐户** 下,选择 **开始**。
- 选择 **添加用户/组**。
- 使用
organization:team
格式创建您的组。 - 将组分配给预配组。
- 选择 **开始预配** 以启动同步。
要进行验证,请选择 **监控**,然后选择 **预配日志** 以查看您的组是否已成功预配。在您的 Docker 组织中,您可以检查组是否已正确预配以及成员是否已添加到相应的团队。
完成后,通过 SSO 登录 Docker 的用户将自动添加到 IdP 中映射的组织和团队。
提示
启用 SCIM 以利用自动用户预配和取消预配。如果您不启用 SCIM,则只会自动预配用户。您必须手动取消预配它们。
更多资源
以下视频演示了如何在启用 SCIM 的情况下使用您的 IdP 进行组映射