SCIM 概述
本部分适用于想要为其业务启用跨域身份管理系统 (SCIM) 2.0 的管理员。它可供 Docker Business 客户使用。
SCIM 通过您的身份提供商 (IdP) 为您的 Docker 组织或公司提供自动化的用户配置和取消配置。在 Docker 和 IdP 中启用 SCIM 后,分配给 IdP 中 Docker 应用程序的任何用户都会在 Docker 中自动配置并添加到组织或公司。
同样,如果用户从 IdP 中的 Docker 应用程序中取消分配,则会将该用户从 Docker 中的组织或公司中删除。 SCIM 还同步 IdP 中对用户属性所做的更改,例如用户的名字和姓氏。
下面列出了支持的配置功能:
- 创建新用户
- 推送用户个人资料更新
- 删除用户
- 停用用户
- 重新激活用户
- 组映射
支持的属性
下表列出了支持的属性。请注意,您的属性映射必须与 SSO 匹配,以防止重复您的成员。
属性 | 描述 |
---|---|
用户名 | 用户的主要电子邮件地址。这是用户的唯一标识符。 |
name.givenName | 用户的名字 |
姓名.家庭姓名 | 用户姓氏 |
积极的 | 指示用户是启用还是禁用。可以设置为 false 以取消配置用户。 |
有关支持的属性和 SCIM 的其他详细信息,请参阅 Docker Hub API SCIM 参考。
重要的
默认情况下,SSO 使用即时 (JIT) 配置。如果您 启用 SCIM,则只要用户登录,JIT 值仍会覆盖 SCIM 配置设置的属性值。为避免冲突,请确保您的 JIT 值与 SCIM 值匹配。有关详细信息,请参阅 SSO 属性。
测试版功能
当您使用管理控制台时,私人测试版中提供可选的即时 (JIT) 配置。如果您参与此计划,则可以通过在 SSO 连接中禁用 JIT 配置来避免 SCIM 和 JIT 之间的冲突。请参阅 禁用 JIT 配置的 SSO 身份验证。
在 Docker 中启用 SCIM
在启用 SCIM 之前,您必须确保已 配置 SSO 。不需要强制执行 SSO。
- 登录 Docker Hub。
- 导航到您的组织或公司的 SSO 设置页面。
- 组织:选择组织、您的组织、设置,然后选择安全。
- 公司:选择组织、您的公司,然后选择设置。
- 在 SSO 连接表中,选择操作图标和设置 SCIM。
- 复制SCIM 基本 URL和API 令牌并将值粘贴到您的 IdP 中。
在您的 IdP 中启用 SCIM
IdP 的用户界面可能与以下步骤略有不同。您可以参考 IdP 的文档进行验证。
启用 SCIM
- 转至 Okta 管理门户。
- 转到您在配置 SSO 连接时创建的应用程序。
- 在应用程序页面上,转到常规选项卡并选择编辑应用程序设置。
- 启用 SCIM 配置,然后选择保存。
- 现在您可以访问“配置”选项卡。导航至此选项卡,然后选择“编辑 SCIM 连接”。
- 要在 Okta 中配置 SCIM,请按如下所示设置连接:
- SCIM 基本 URL:SCIM 连接器基本 URL(从 Docker Hub 复制)
- 用户的唯一标识符字段:
email
- 支持的配置操作:推送新用户和推送配置文件更新
- 验证方式:HTTP 标头
- SCIM Bearer Token:HTTP 标头授权 Bearer Token(从 Docker Hub 复制)
- 选择测试连接器配置。
- 查看测试结果。
- 选择保存。
启用同步
- 转至配置 > 至应用程序 > 编辑。
- 启用创建用户、更新用户属性和停用用户。
- 选择保存。
- 删除不必要的映射。必要的映射是:
- 用户名
- 给定的名称
- 姓
- 电子邮件
- 在 Azure 管理门户中,转到企业应用程序,然后选择您在设置 SSO 连接时创建的Docker应用程序。
- 转到“配置”并选择“开始”。
- 选择自动配置模式。
- 将 Docker Hub 中的 SCIM 基本 URL 和 API 令牌输入到管理凭据表单中。
- 测试连接,然后选择“保存”。
- 转到“映射”,然后选择“配置 Azure Active Directory 组”。
- 将启用值设置为否。
- 选择“配置 Azure Active Directory 用户”。
- 删除所有不支持的属性。
- 选择保存。
- 将配置状态设置为On。
有关更多详细信息,请参阅 IdP 的文档:
设置角色映射
您可以 在 IdP 中向组织中的成员分配角色。要设置角色,您可以为要分配角色的人员使用可选的用户级别属性。除了角色之外,您还可以设置组织或团队来覆盖 SSO 连接设置的默认配置值。
笔记
SCIM 和 JIT 配置都支持这些映射。通过 JIT 供应,角色映射仅在用户最初供应给组织时应用。
下表列出了支持的可选用户级属性。
属性 | 可能的值 | 注意事项 |
---|---|---|
dockerRole | member ,editor , 或者owner 。有关每个角色的权限列表,请参阅
角色和权限。 | 如果您未在 IdP 中分配角色,则该dockerRole 属性的值默认为member 。当您设置该属性时,这将覆盖默认值。 |
dockerOrg | organizationName 。例如,名为“moby”的组织将是moby 。 | 设置此属性会覆盖 SSO 连接配置的默认组织。此外,这不会将用户添加到默认团队。如果未设置此属性,则会将用户配置到默认组织和默认团队。如果设置并且dockerTeam 也设置了,这会将用户配置给该组织内的团队。 |
dockerTeam | teamName 。例如,一个名为“开发人员”的团队将是developers 。 | 设置此属性会将用户配置到默认组织和指定团队,而不是 SSO 连接的默认团队。如果团队不存在,这也会创建团队。您仍然可以使用组映射将用户配置给多个组织中的团队。请参阅 组映射。 |
在 IdP 中设置角色后,您需要同步以将更改推送到 Docker。
用于设置这些属性的外部命名空间是urn:ietf:params:scim:schemas:extension:docker:2.0:User
。
设置
- 首先设置 SSO和 SCIM。
- 在 Okta 管理门户中,转至Directory > Profile Editor并选择User (Default)。
- 选择添加属性并配置要添加的角色、组织或团队的值。不需要确切的命名。
- 返回配置文件编辑器并选择您的应用程序。
- 选择添加属性并输入所需的值。外部名称和外部命名空间必须准确。组织/团队/角色映射的外部名称值分别为
dockerOrg
、dockerTeam
和dockerRole
,如上表中所列。它们的外部命名空间都是相同的:urn:ietf:params:scim:schemas:extension:docker:2.0:User
。 - 创建属性后,转到顶部并选择Mappings > Okta User to YOUR APP。
- 转到新创建的属性并将上面选择的变量名称映射到外部名称,然后选择Save Mappings。如果您使用 JIT 配置,请继续执行以下步骤。
- 转至应用程序 > 您的应用程序 > 常规 > SAML 设置 > 编辑 > 步骤 2,并配置从用户属性到 docker 变量的映射。
按用户分配角色
- 转至目录 > 人员 > 您的用户 > 个人资料,然后选择“属性”上的“编辑”。
- 将属性更新为所需的值。
按组分配角色
- 转至目录 > 人员 > 您的组 > 应用程序 > 您的应用程序,然后选择编辑图标。
- 将属性更新为所需的值。
如果用户尚未设置属性,则添加到组中的用户将在配置后继承这些属性。
设置
- 首先设置 SSO和 SCIM。
- 在 Azure AD 管理门户中,转到“企业应用程序”>“您的应用程序”>“配置”>“映射”>“配置 Azure Active Directory 用户”。
- 要设置新映射,请选中“显示高级选项”,然后选择“编辑属性选项”。
- 使用角色、组织或组(例如,
urn:ietf:params:scim:schemas:extension:docker:2.0:User:dockerRole
)的所需映射作为字符串类型创建新条目。 - 返回用户的属性映射并单击添加新映射。
表达映射
此实现最适合角色,但不能与使用相同方法的组织和团队映射一起使用。通过这种方法,您可以在组级别分配属性,成员可以继承这些属性。这是推荐的角色映射方法。
在“编辑属性”视图中,选择“表达式”映射类型。
如果您可以直接创建以角色命名的应用程序角色(例如
owner
或editor
),则在“表达式”字段中,您可以使用SingleAppRoleAssignment([appRoleAssignments])
。或者,如果您仅限于使用已定义的应用程序角色(例如
My Corp Administrators
),则需要为这些角色设置开关。例如:Switch(SingleAppRoleAssignment([appRoleAssignments]), "member", "My Corp Administrator", "owner", "My Corp Editor", "editor")`
设置以下字段:
- 目标属性:
urn:ietf:params:scim:schemas:extension:docker:2.0:User:dockerRole
. - 使用此属性匹配对象:否
- 应用此映射:始终
- 目标属性:
保存您的配置。
直接映射
直接映射是表达式映射的替代方法。此实现同时适用于所有三种映射类型。为了分配用户,您需要使用 Microsoft Graph API。
在编辑属性视图中,选择直接映射类型。
设置以下字段:
- 源属性:选择 Entra 中允许的扩展属性之一(例如,
extensionAttribute1
) - 目标属性:
urn:ietf:params:scim:schemas:extension:docker:2.0:User:dockerRole
- 使用此属性匹配对象:否
- 应用此映射:始终
如果您要设置多个属性(例如角色和组织),则需要为每一项选择不同的扩展属性。
- 源属性:选择 Entra 中允许的扩展属性之一(例如,
保存您的配置。
分配用户
如果您在上一步中使用了表达式映射,请转至应用程序注册 > 您的应用程序 > 应用程序角色,并为每个 Docker 角色创建一个应用程序角色。如果可能,请使用与 Docker 中的角色直接等效的显示名称来创建它,例如,owner
而不是Owner
.如果这样设置,那么您可以使用表达式映射到SingleAppRoleAssignment([appRoleAssignments])
.否则,必须使用自定义开关。请参阅
表达式映射。
添加用户:
- 转到您的应用程序 > 用户和组。选择添加用户/组。
- 选择要添加的用户,然后选择其所需的角色。
要添加组:
- 转到您的应用程序 > 用户和组。选择添加用户/组。
- 选择要添加的组,然后为该组中的用户选择所需的角色。
如果您在上一步中使用了直接映射,请转到Microsoft Graph Explorer并登录到您的租户。您需要成为租户管理员才能使用此功能。使用 Microsoft Graph API 将扩展属性分配给用户,并使用与属性映射到的值相对应的值。有关在扩展属性中添加或更新数据的信息,请参阅 Microsoft Graph API 文档。
有关更多详细信息,请参阅 IdP 的文档:
禁用 SCIM
如果禁用 SCIM,通过 SCIM 配置的任何用户都将保留在组织中。您的用户的未来更改将不会从您的 IdP 同步。仅当手动从组织中删除用户时,才可以取消用户配置。
- 登录 Docker Hub。
- 导航到您的组织或公司的 SSO 设置页面。
- 组织:选择组织、您的组织、设置,然后选择安全。
- 公司:选择组织、您的公司,然后选择设置。
- 在 SSO 连接表中,选择操作图标。
- 选择禁用 SCIM。
更多资源
以下视频演示了如何为您的 IdP 配置 SCIM。