SCIM 用户配置

订阅: Business
适用于: 管理员

跨域身份管理系统 (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。


  1. 登录 Admin Console
  2. 在左侧导航下拉菜单中选择您的组织或公司,然后选择 SSO 和 SCIM
  3. 在 SSO 连接表格中,选择操作图标和设置 SCIM
  4. 复制 SCIM 基本 URLAPI 令牌,并将这些值粘贴到您的 IdP 中。

重要

组织管理正在迁移到 Admin Console。

在 Docker Admin Console 中管理成员、团队、设置和活动日志。Docker Hub 中对这些功能的访问即将结束。探索 Admin Console

  1. 登录 Docker Hub
  2. 导航到您组织的 SSO 设置页面。
    • 组织:选择我的 Hub,您的组织,设置,然后选择安全
  3. 在 SSO 连接表格中,选择操作图标和设置 SCIM
  4. 复制 SCIM 基本 URLAPI 令牌,并将这些值粘贴到您的 IdP 中。

在您的 IdP 中启用 SCIM

您的 IdP 的用户界面可能与以下步骤略有不同。您可以参考您的 IdP 的文档进行验证。有关更多详细信息,请参阅您的 IdP 的文档


启用 SCIM

  1. 登录 Okta,然后选择管理员以打开管理员门户。
  2. 打开您在配置 SSO 连接时创建的应用。
  3. 在应用页面上,选择通用选项卡,然后选择编辑应用设置
  4. 启用 SCIM 用户配置,然后选择保存
  5. 现在您可以访问 Okta 中的用户配置选项卡。导航到此选项卡,然后选择编辑 SCIM 连接
  6. 要在 Okta 中配置 SCIM,请使用以下值和设置来设置您的连接
    • SCIM 基本 URL:SCIM 连接器基本 URL(从 Docker Hub 复制)
    • 用户的唯一标识符字段:email
    • 支持的用户配置操作:推送新用户和推送资料更新
    • 身份验证模式:HTTP 头部
    • SCIM Bearer 令牌:HTTP 头部授权 Bearer 令牌(从 Docker Hub 复制)
  7. 选择测试连接器配置
  8. 查看测试结果并选择保存

启用同步

  1. 在 Okta 中,选择用户配置
  2. 选择至应用,然后选择编辑
  3. 启用创建用户更新用户属性注销用户
  4. 选择保存
  5. 移除不必要的映射。必要的映射包括:
    • 用户名
    • 名字
    • 姓氏
    • 电子邮件
  1. 在 Azure 管理门户中,转到企业应用,然后选择您在设置 SSO 连接时创建的 Docker 应用。
  2. 选择用户配置,然后选择开始
  3. 选择自动用户配置模式。
  4. 将 Docker 中的 SCIM 基本 URLAPI 令牌输入到管理员凭据表单中。
  5. 测试连接,然后选择保存
  6. 转到映射,然后选择配置 Azure Active Directory 组
  7. 启用值设置为
  8. 选择配置 Azure Active Directory 用户
  9. 移除所有不受支持的属性。
  10. 选择保存
  11. 将用户配置状态设置为开启

设置角色映射

您可以在您的 IdP 中为组织中的成员分配角色。要设置角色,您可以为您想要分配角色的个人使用可选的用户级属性。除了角色之外,您还可以设置组织或团队来覆盖 SSO 连接设置的默认用户配置值。

注意

角色映射支持 SCIM 和 JIT 两种用户预配方式。对于 JIT 用户预配,角色映射仅在用户首次预配到组织时应用。

下表列出了支持的可选用户级别属性。

属性可能的值注意事项
dockerRolemembereditorowner。每个角色的权限列表,请参阅角色和权限如果您未在 IdP 中分配角色,则 dockerRole 属性的值默认为 member。当您设置此属性时,会覆盖默认值。
dockerOrgorganizationName,例如,名为 "moby" 的组织将对应 moby设置此属性会覆盖 SSO 连接配置的默认组织。此外,这不会将用户添加到默认团队。如果未设置此属性,用户将被预配到默认组织和默认团队。如果已设置并且也设置了 dockerTeam,则会将用户预配到该组织内的指定团队。
dockerTeamteamName,例如,名为 "developers" 的团队将对应 developers设置此属性会将用户预配到默认组织以及指定的团队,而不是 SSO 连接的默认团队。如果该团队不存在,此操作也会创建该团队。您仍然可以使用组映射将用户预配到多个组织中的团队。有关更多详细信息,请参阅组映射

在 IdP 中设置角色后,必须在 IdP 中启动同步,将更改推送到 Docker。

用于设置这些属性的外部命名空间是 urn:ietf:params:scim:schemas:extension:docker:2.0:User


在 Okta 中设置角色映射

  1. 首先设置 SSO 和 SCIM。
  2. 在 Okta 管理门户中,转到 Directory,选择 Profile Editor,然后选择 User (Default)
  3. 选择 Add Attribute,然后配置要添加的角色、组织或团队的值。不需要完全一致的命名。
  4. 返回 Profile Editor,然后选择您的应用程序。
  5. 选择 Add Attribute 并输入所需的值。External NameExternal Namespace 必须完全一致。组织/团队/角色映射的外部名称值分别为 dockerOrgdockerTeamdockerRole,如前表所示。所有这些的外部命名空间都是相同的:urn:ietf:params:scim:schemas:extension:docker:2.0:User
  6. 创建属性后,导航到页面顶部并选择 Mappings,然后选择 Okta User to YOUR APP
  7. 转到新创建的属性,并将变量名称映射到外部名称,然后选择 Save Mappings。如果您正在使用 JIT 用户预配,请继续执行以下步骤。
  8. 导航到 Applications,然后选择 YOUR APP
  9. 选择 General,然后选择 SAML Settings,再选择 Edit
  10. 选择 Step 2,然后配置用户属性到 Docker 变量的映射。

按用户分配角色

  1. 在 Okta 管理门户中,选择 Directory,然后选择 People
  2. 选择 Profile,然后选择 Edit
  3. 选择 Attributes,并将属性更新为所需的值。

按组分配角色

  1. 在 Okta 管理门户中,选择 Directory,然后选择 People
  2. 选择 YOUR GROUP,然后选择 Applications
  3. 打开 YOUR APPLICATION,然后选择 Edit 图标。
  4. 将属性更新为所需的值。

如果用户尚未设置属性,则添加到组中的用户在预配时将继承这些属性。

在 Azure AD 中设置角色映射

  1. 首先设置 SSO 和 SCIM。
  2. 在 Azure AD 管理门户中,打开 Enterprise Apps,然后选择 YOUR APP
  3. 选择 Provisioning,然后选择 Mappings,再选择 Provision Azure Active Directory Users
  4. 要设置新的映射,请勾选 Show advanced options,然后选择 Edit attribute options
  5. 创建新条目,将角色、组织或组(例如 urn:ietf:params:scim:schemas:extension:docker:2.0:User:dockerRole)映射为字符串类型。
  6. 返回用户的 Attribute Mapping,然后选择 Add new mapping

表达式映射

此实现最适合角色,但不能与使用相同方法的组织和团队映射一起使用。通过这种方法,您可以在组级别分配属性,组成员可以继承这些属性。这是角色映射的推荐方法。

  1. Edit Attribute 视图中,选择 Expression 映射类型。

  2. 如果您可以直接创建与角色同名的应用程序角色(例如 ownereditor),则可以在 Expression 字段中使用 SingleAppRoleAssignment([appRoleAssignments])

    或者,如果您只能使用已定义的应用程序角色(例如 My Corp Administrators),则需要为这些角色设置一个切换。例如

    Switch(SingleAppRoleAssignment([appRoleAssignments]), "member", "My Corp Administrator", "owner", "My Corp Editor", "editor")`
  3. 设置以下字段

    • 目标属性: urn:ietf:params:scim:schemas:extension:docker:2.0:User:dockerRole
    • 使用此属性匹配对象: 否
    • 应用此映射: 始终
  4. 保存您的配置。

直接映射

直接映射是表达式映射的替代方法。此实现可同时用于所有三种映射类型。要分配用户,您需要使用 Microsoft Graph API。

  1. Edit Attribute 视图中,选择 Direct 映射类型。

  2. 设置以下字段

    • 源属性: 选择 Entra 中允许的扩展属性之一(例如 extensionAttribute1
    • 目标属性: urn:ietf:params:scim:schemas:extension:docker:2.0:User:dockerRole
    • 使用此属性匹配对象: 否
    • 应用此映射: 始终

    如果您要设置多个属性(例如角色和组织),则需要为每个属性选择不同的扩展属性。

  3. 保存您的配置。

分配用户

如果您在上一步使用了表达式映射,请导航到 App registrations,选择 YOUR APP,然后选择 App Roles。为每个 Docker 角色创建一个应用程序角色。如果可能,请使用与 Docker 中的角色直接对应的显示名称创建它,例如 owner 而不是 Owner。如果这样设置,则可以使用表达式映射到 SingleAppRoleAssignment([appRoleAssignments])。否则,必须使用自定义切换。请参阅 表达式映射

添加用户

  1. 选择 YOUR APP,然后选择 Users and groups
  2. 选择 Add user/groups,选择要添加的用户,然后 Select 他们所需的角色。

添加组

  1. 选择 YOUR APP,然后选择 Users and groups
  2. 选择 Add user/groups,选择要添加的用户,然后 Select 他们所需的角色。

如果您在上一步使用了直接映射,请转到 Microsoft Graph Explorer 并登录您的租户。您需要是租户管理员才能使用此功能。使用 Microsoft Graph API 将扩展属性分配给用户,其值应与该属性映射的值相对应。有关在扩展属性中添加或更新数据的详细信息,请参阅 Microsoft Graph API 文档


有关更多详细信息,请参阅您的 IdP 文档

禁用 SCIM

如果 SCIM 被禁用,通过 SCIM 预配的任何用户将保留在组织中。您的用户的未来更改将不会从您的 IdP 同步。用户解除预配仅在手动将用户从组织中删除时才可能实现。


  1. 登录 Admin Console
  2. 在左侧导航下拉菜单中选择您的组织或公司,然后选择 SSO 和 SCIM
  3. 在 SSO 连接表中,选择 Actions 图标。
  4. 选择 Disable SCIM

重要

组织管理正在迁移到 Admin Console。

在 Docker Admin Console 中管理成员、团队、设置和活动日志。Docker Hub 中对这些功能的访问即将结束。探索 Admin Console

  1. 登录 Docker Hub
  2. 导航到您组织的 SSO 设置页面。
    • 组织:选择我的 Hub,您的组织,设置,然后选择安全
  3. 在 SSO 连接表中,选择 Actions 图标。
  4. 选择 Disable SCIM

更多资源

以下视频演示了如何为您的 IdP 配置 SCIM

页面选项