组映射
群组映射会自动将您身份提供商 (IdP) 中的用户群组与 Docker 组织中的团队进行同步。例如,当您将开发人员添加到 IdP 中的“backend-team”群组时,他们会自动添加到 Docker 中对应的团队。
本页面解释了群组映射的工作原理以及如何设置群组映射。
提示群组映射非常适合将用户添加到多个组织或一个组织内的多个团队。如果您不需要设置多组织或多团队分配,SCIM 用户级属性可能更适合您的需求。
先决条件
在开始之前,您必须具备:
- 为您的组织配置了 SSO
- Docker Home 和您的身份提供商的管理员访问权限
群组映射如何工作
群组映射通过以下关键组件使您的 Docker 团队与 IdP 群组保持同步:
- 身份验证流程:当用户通过 SSO 登录时,您的 IdP 会与 Docker 共享用户属性,包括电子邮件、姓名和群组成员资格。
- 自动更新:Docker 使用这些属性来创建或更新用户配置文件,并根据 IdP 群组更改管理团队分配。
- 唯一标识:Docker 使用电子邮件地址作为唯一标识符,因此每个 Docker 帐户都必须具有唯一的电子邮件地址。
- 团队同步:Docker 中用户的团队成员资格会自动反映 IdP 群组中的更改。
设置群组映射
群组映射设置涉及配置您的身份提供商以与 Docker 共享群组信息。这需要:
- 使用 Docker 的命名格式在您的 IdP 中创建群组
- 配置属性,以便您的 IdP 在身份验证期间发送群组数据
- 将用户添加到相应的群组
- 测试连接以确保群组正确同步
您可以仅将群组映射与 SSO 结合使用,或者与 SSO 和 SCIM 同时使用,以实现增强的用户生命周期管理。
群组命名格式
使用格式 `organization:team` 在您的 IdP 中创建群组。
例如:
- 对于“moby”组织中的“developers”团队:`mobdy:developers`
- 对于多组织访问:`moby:backend` 和 `whale:desktop`
如果群组同步时团队不存在,Docker 会自动创建团队。
支持的属性
| 属性 | 描述 |
|---|---|
id | UUID 格式的群组唯一 ID。此属性为只读。 |
displayName | 遵循群组映射格式的群组名称:`organization:team`。 |
成员 | 此群组的成员用户列表。 |
members(x).value | 此群组的成员用户的唯一 ID。成员通过 ID 引用。 |
使用 SSO 配置群组映射
将群组映射与使用 SAML 身份验证方法的 SSO 连接一起使用。
注意使用 Azure AD (OIDC) 身份验证方法时,不支持 SSO 的群组映射。这些配置不需要 SCIM。
您的 IdP 的用户界面可能与以下步骤略有不同。请参阅 Okta 文档进行验证。
设置群组映射
- 登录 Okta 并打开您的应用程序。
- 导航到您应用程序的 SAML 设置 页面。
- 在 群组属性语句(可选) 部分,按如下配置:
- 名称:`groups`
- 名称格式:`未指定`
- 筛选器:`开头是` + `organization:`,其中 `organization` 是您的组织名称。筛选器选项将过滤掉与您的 Docker 组织无关的群组。
- 选择 目录,然后选择 群组,创建您的群组。
- 使用 `organization:team` 格式添加您的群组,该格式与您 Docker 中的组织和团队名称匹配。
- 将用户分配到您创建的群组。
下次将群组与 Docker 同步时,您的用户将映射到您定义的 Docker 群组。
您的 IdP 的用户界面可能与以下步骤略有不同。请参阅 Entra ID 文档进行验证。
设置群组映射
- 登录 Entra ID 并打开您的应用程序。
- 选择 管理,然后选择 单一登录。
- 选择 添加群组声明。
- 在“群组声明”部分,选择 分配给应用程序的群组,源属性为 仅限云群组显示名称(预览)。
- 选择 高级选项,然后选择 筛选群组 选项。
- 按如下方式配置属性
- 要匹配的属性:`显示名称`
- 匹配方式:`包含`
- 字符串:`:`
- 选择保存。
- 选择 群组,所有群组,然后选择 新建群组 以创建您的群组。
- 将用户分配到您创建的群组。
下次将群组与 Docker 同步时,您的用户将映射到您定义的 Docker 群组。
使用 SCIM 配置群组映射
使用 SCIM 进行群组映射,以实现更高级的用户生命周期管理。开始之前,请务必先设置 SCIM。
您的 IdP 的用户界面可能与以下步骤略有不同。请参阅 Okta 文档进行验证。
设置您的群组
- 登录 Okta 并打开您的应用程序。
- 选择 应用程序,然后选择 配置,再选择 集成。
- 选择 编辑 以在您的连接上启用群组,然后选择 推送群组。
- 选择 保存。保存此配置将把 推送群组 选项卡添加到您的应用程序中。
- 通过导航到 目录 并选择 群组 来创建您的群组。
- 使用 `organization:team` 格式添加您的群组,该格式与您 Docker 中的组织和团队名称匹配。
- 将用户分配到您创建的群组。
- 返回 集成 页面,然后选择 推送群组 选项卡以打开您可以控制和管理群组配置方式的视图。
- 选择 推送群组,然后选择 按规则查找群组。
- 按如下方式配置群组规则:
- 输入规则名称,例如 `将群组与 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,则用户仅自动配置。您必须手动解除配置。