SCIM 用户配置
跨域身份管理系统 (SCIM) 可供 Docker Business 客户使用。本指南概述了 SCIM 用户配置。
SCIM 工作原理
SCIM 通过您的身份提供商 (IdP) 为 Docker 提供自动用户配置和取消配置功能。启用 SCIM 后,在您的 IdP 中分配给 Docker 应用的用户会自动配置并添加到您的 Docker 组织。如果某个用户被取消分配,他们将从 Docker 中移除。
SCIM 还会同步在您的 IdP 中进行的用户资料更新,例如姓名更改。SCIM 可以与 Docker 的默认即时 (JIT) 用户配置配置一起使用,也可以在禁用 JIT 的情况下单独使用。
SCIM 支持自动执行以下操作:
- 创建用户
- 更新用户资料
- 移除和注销用户
- 重新激活用户
- 组映射
支持的属性
重要
对于 SSO 配置,Docker 默认使用 JIT 用户配置。如果您启用 SCIM,JIT 值仍会覆盖 SCIM 用户配置设置的属性值。为了避免冲突,您的 JIT 属性值必须与您的 SCIM 属性值匹配。为了避免 SCIM 和 JIT 之间的冲突,您还可以禁用 JIT 用户配置。有关更多信息,请参阅即时。
属性是在使用 SCIM 时,在您的 IdP 和 Docker 之间同步的用户信息片段,例如姓名和电子邮件。正确映射这些属性对于无缝用户配置和在使用 SSO 时防止重复条目至关重要。
下表列出了 SCIM 支持的属性
属性 | 描述 |
---|---|
userName | 用户的主要电子邮件地址,用作唯一标识符 |
name.givenName | 用户的名字 |
name.familyName | 用户的姓氏 |
active | 指示用户是否启用或禁用,设置为“false”以取消配置用户 |
有关支持的属性和 SCIM 的更多详细信息,请参阅Docker Hub API SCIM 参考。
在 Docker 中启用 SCIM
您必须配置 SSO,然后才能启用 SCIM。使用 SCIM 不需要强制执行 SSO。
- 登录 Admin Console。
- 在左侧导航下拉菜单中选择您的组织或公司,然后选择 SSO 和 SCIM。
- 在 SSO 连接表格中,选择操作图标和设置 SCIM。
- 复制 SCIM 基本 URL 和 API 令牌,并将这些值粘贴到您的 IdP 中。
重要
组织管理正在迁移到 Admin Console。
在 Docker Admin Console 中管理成员、团队、设置和活动日志。Docker Hub 中对这些功能的访问即将结束。探索 Admin Console。
- 登录 Docker Hub。
- 导航到您组织的 SSO 设置页面。
- 组织:选择我的 Hub,您的组织,设置,然后选择安全。
- 在 SSO 连接表格中,选择操作图标和设置 SCIM。
- 复制 SCIM 基本 URL 和 API 令牌,并将这些值粘贴到您的 IdP 中。
在您的 IdP 中启用 SCIM
您的 IdP 的用户界面可能与以下步骤略有不同。您可以参考您的 IdP 的文档进行验证。有关更多详细信息,请参阅您的 IdP 的文档
启用 SCIM
- 登录 Okta,然后选择管理员以打开管理员门户。
- 打开您在配置 SSO 连接时创建的应用。
- 在应用页面上,选择通用选项卡,然后选择编辑应用设置。
- 启用 SCIM 用户配置,然后选择保存。
- 现在您可以访问 Okta 中的用户配置选项卡。导航到此选项卡,然后选择编辑 SCIM 连接。
- 要在 Okta 中配置 SCIM,请使用以下值和设置来设置您的连接
- SCIM 基本 URL:SCIM 连接器基本 URL(从 Docker Hub 复制)
- 用户的唯一标识符字段:
email
- 支持的用户配置操作:推送新用户和推送资料更新
- 身份验证模式:HTTP 头部
- SCIM Bearer 令牌:HTTP 头部授权 Bearer 令牌(从 Docker Hub 复制)
- 选择测试连接器配置。
- 查看测试结果并选择保存。
启用同步
- 在 Okta 中,选择用户配置。
- 选择至应用,然后选择编辑。
- 启用创建用户、更新用户属性和注销用户。
- 选择保存。
- 移除不必要的映射。必要的映射包括:
- 用户名
- 名字
- 姓氏
- 电子邮件
- 在 Azure 管理门户中,转到企业应用,然后选择您在设置 SSO 连接时创建的 Docker 应用。
- 选择用户配置,然后选择开始。
- 选择自动用户配置模式。
- 将 Docker 中的 SCIM 基本 URL 和 API 令牌输入到管理员凭据表单中。
- 测试连接,然后选择保存。
- 转到映射,然后选择配置 Azure Active Directory 组。
- 将启用值设置为否。
- 选择配置 Azure Active Directory 用户。
- 移除所有不受支持的属性。
- 选择保存。
- 将用户配置状态设置为开启。
设置角色映射
您可以在您的 IdP 中为组织中的成员分配角色。要设置角色,您可以为您想要分配角色的个人使用可选的用户级属性。除了角色之外,您还可以设置组织或团队来覆盖 SSO 连接设置的默认用户配置值。
注意
角色映射支持 SCIM 和 JIT 两种用户预配方式。对于 JIT 用户预配,角色映射仅在用户首次预配到组织时应用。
下表列出了支持的可选用户级别属性。
属性 | 可能的值 | 注意事项 |
---|---|---|
dockerRole | member 、editor 或 owner 。每个角色的权限列表,请参阅角色和权限 | 如果您未在 IdP 中分配角色,则 dockerRole 属性的值默认为 member 。当您设置此属性时,会覆盖默认值。 |
dockerOrg | organizationName ,例如,名为 "moby" 的组织将对应 moby | 设置此属性会覆盖 SSO 连接配置的默认组织。此外,这不会将用户添加到默认团队。如果未设置此属性,用户将被预配到默认组织和默认团队。如果已设置并且也设置了 dockerTeam ,则会将用户预配到该组织内的指定团队。 |
dockerTeam | teamName ,例如,名为 "developers" 的团队将对应 developers | 设置此属性会将用户预配到默认组织以及指定的团队,而不是 SSO 连接的默认团队。如果该团队不存在,此操作也会创建该团队。您仍然可以使用组映射将用户预配到多个组织中的团队。有关更多详细信息,请参阅组映射。 |
在 IdP 中设置角色后,必须在 IdP 中启动同步,将更改推送到 Docker。
用于设置这些属性的外部命名空间是 urn:ietf:params:scim:schemas:extension:docker:2.0:User
。
在 Okta 中设置角色映射
- 首先设置 SSO 和 SCIM。
- 在 Okta 管理门户中,转到 Directory,选择 Profile Editor,然后选择 User (Default)。
- 选择 Add Attribute,然后配置要添加的角色、组织或团队的值。不需要完全一致的命名。
- 返回 Profile Editor,然后选择您的应用程序。
- 选择 Add Attribute 并输入所需的值。External Name 和 External Namespace 必须完全一致。组织/团队/角色映射的外部名称值分别为
dockerOrg
、dockerTeam
和dockerRole
,如前表所示。所有这些的外部命名空间都是相同的:urn:ietf:params:scim:schemas:extension:docker:2.0:User
。 - 创建属性后,导航到页面顶部并选择 Mappings,然后选择 Okta User to YOUR APP。
- 转到新创建的属性,并将变量名称映射到外部名称,然后选择 Save Mappings。如果您正在使用 JIT 用户预配,请继续执行以下步骤。
- 导航到 Applications,然后选择 YOUR APP。
- 选择 General,然后选择 SAML Settings,再选择 Edit。
- 选择 Step 2,然后配置用户属性到 Docker 变量的映射。
按用户分配角色
- 在 Okta 管理门户中,选择 Directory,然后选择 People。
- 选择 Profile,然后选择 Edit。
- 选择 Attributes,并将属性更新为所需的值。
按组分配角色
- 在 Okta 管理门户中,选择 Directory,然后选择 People。
- 选择 YOUR GROUP,然后选择 Applications。
- 打开 YOUR APPLICATION,然后选择 Edit 图标。
- 将属性更新为所需的值。
如果用户尚未设置属性,则添加到组中的用户在预配时将继承这些属性。
在 Azure AD 中设置角色映射
- 首先设置 SSO 和 SCIM。
- 在 Azure AD 管理门户中,打开 Enterprise Apps,然后选择 YOUR APP。
- 选择 Provisioning,然后选择 Mappings,再选择 Provision Azure Active Directory Users。
- 要设置新的映射,请勾选 Show advanced options,然后选择 Edit attribute options。
- 创建新条目,将角色、组织或组(例如
urn:ietf:params:scim:schemas:extension:docker:2.0:User:dockerRole
)映射为字符串类型。 - 返回用户的 Attribute Mapping,然后选择 Add new mapping。
表达式映射
此实现最适合角色,但不能与使用相同方法的组织和团队映射一起使用。通过这种方法,您可以在组级别分配属性,组成员可以继承这些属性。这是角色映射的推荐方法。
在 Edit Attribute 视图中,选择 Expression 映射类型。
如果您可以直接创建与角色同名的应用程序角色(例如
owner
或editor
),则可以在 Expression 字段中使用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。
在 Edit Attribute 视图中,选择 Direct 映射类型。
设置以下字段
- 源属性: 选择 Entra 中允许的扩展属性之一(例如
extensionAttribute1
) - 目标属性:
urn:ietf:params:scim:schemas:extension:docker:2.0:User:dockerRole
- 使用此属性匹配对象: 否
- 应用此映射: 始终
如果您要设置多个属性(例如角色和组织),则需要为每个属性选择不同的扩展属性。
- 源属性: 选择 Entra 中允许的扩展属性之一(例如
保存您的配置。
分配用户
如果您在上一步使用了表达式映射,请导航到 App registrations,选择 YOUR APP,然后选择 App Roles。为每个 Docker 角色创建一个应用程序角色。如果可能,请使用与 Docker 中的角色直接对应的显示名称创建它,例如 owner
而不是 Owner
。如果这样设置,则可以使用表达式映射到 SingleAppRoleAssignment([appRoleAssignments])
。否则,必须使用自定义切换。请参阅 表达式映射。
添加用户
- 选择 YOUR APP,然后选择 Users and groups。
- 选择 Add user/groups,选择要添加的用户,然后 Select 他们所需的角色。
添加组
- 选择 YOUR APP,然后选择 Users and groups。
- 选择 Add user/groups,选择要添加的用户,然后 Select 他们所需的角色。
如果您在上一步使用了直接映射,请转到 Microsoft Graph Explorer 并登录您的租户。您需要是租户管理员才能使用此功能。使用 Microsoft Graph API 将扩展属性分配给用户,其值应与该属性映射的值相对应。有关在扩展属性中添加或更新数据的详细信息,请参阅 Microsoft Graph API 文档。
有关更多详细信息,请参阅您的 IdP 文档
禁用 SCIM
如果 SCIM 被禁用,通过 SCIM 预配的任何用户将保留在组织中。您的用户的未来更改将不会从您的 IdP 同步。用户解除预配仅在手动将用户从组织中删除时才可能实现。
- 登录 Admin Console。
- 在左侧导航下拉菜单中选择您的组织或公司,然后选择 SSO 和 SCIM。
- 在 SSO 连接表中,选择 Actions 图标。
- 选择 Disable SCIM。
重要
组织管理正在迁移到 Admin Console。
在 Docker Admin Console 中管理成员、团队、设置和活动日志。Docker Hub 中对这些功能的访问即将结束。探索 Admin Console。
- 登录 Docker Hub。
- 导航到您组织的 SSO 设置页面。
- 组织:选择我的 Hub,您的组织,设置,然后选择安全。
- 在 SSO 连接表中,选择 Actions 图标。
- 选择 Disable SCIM。
更多资源
以下视频演示了如何为您的 IdP 配置 SCIM