SCIM 配置

跨域身份管理(SCIM)功能适用于 Docker Business 客户。本指南将简要介绍 SCIM 配置功能。

SCIM 的工作原理

SCIM 通过您的身份提供商(IdP)为 Docker 提供自动化的用户配置和取消配置功能。启用 SCIM 后,分配给您 IdP 中 Docker 应用程序的用户将被自动配置并添加到您的 Docker 组织中。如果某位用户被取消分配,则其将被从 Docker 中移除。

SCIM 还可以同步您在身份提供商(IdP)中进行的用户资料更新,例如姓名变更。SCIM 可与 Docker 默认的即时(Just-in-Time, JIT)配置配合使用,也可在禁用 JIT 的情况下独立使用。

SCIM 支持自动化以下内容:

  • 创建用户
  • 更新用户资料
  • 移除和停用用户
  • 重新激活用户
  • 组映射

支持的属性

重要

Docker 默认为 SSO 配置使用即时配置(JIT provisioning)。如果您启用了 SCIM,JIT 的值仍将覆盖 SCIM 配置所设置的属性值。为避免冲突,您的 JIT 属性值必须与 SCIM 属性值保持一致。您也可以通过禁用 JIT 配置来避免 SCIM 与 JIT 之间的冲突。有关更多信息,请参见即时配置(Just-in-Time)

属性是用户信息片段,例如姓名和电子邮件,在使用SCIM时会在您的身份提供商(IdP)与Docker之间进行同步。正确映射这些属性对于实现用户无缝配置以及在使用单点登录(SSO)时防止重复条目至关重要。

以下表格列出了 SCIM 支持的属性:

属性描述
用户名用户的主电子邮件地址,用作唯一标识符
name.givenName用户的名字
name.familyName用户姓氏
active指示用户是否已启用或禁用,设置为“false”以停用用户

有关受支持属性和SCIM的更多详细信息,请参阅 Docker Hub API SCIM 参考文档

在 Docker 中启用 SCIM

您必须 配置单点登录(SSO),然后才能启用SCIM。强制使用SSO并非使用SCIM的必要条件。


早期访问

Docker 管理控制台是一个 预览版产品。

该功能适用于所有公司所有者和组织所有者。您仍可在 Docker Hub 中管理组织,但管理控制台提供了公司级别的管理功能以及增强的组织管理功能。

  1. 登录到 管理控制台
  2. 在左侧导航下拉菜单中选择您的组织或公司,然后选择 SSO 和 SCIM。
  3. 在 SSO 连接表格中,选择 操作 图标和 设置 SCIM
  4. 复制 SCIM 基础 URLAPI 令牌,并将其粘贴到您的身份提供商(IdP)中。
  1. 登录到 Docker Hub
  2. 导航至您所在组织或公司的单点登录(SSO)设置页面。
    • 组织:选择 Organizations(组织),再选择您的组织,然后选择 Settings(设置),最后选择 Security(安全)。
    • 公司:选择 Organizations(组织),再选择您的公司,然后选择 Settings(设置)。
  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 Token:HTTP 头部 Authorization Bearer Token(从 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. Enabled 值设置为 No
  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. 选择 添加属性 并为您想添加的角色、组织或团队配置值。不需要精确命名。
  4. 返回 个人资料编辑器 并选择您的应用程序。
  5. 选择 添加属性 并输入所需的值。外部名称外部命名空间 必须准确无误。组织/团队/角色映射的外部名称值分别为 dockerOrgdockerTeamdockerRole,如前表所列。它们的外部命名空间均相同:urn:ietf:params:scim:schemas:extension:docker:2.0:User
  6. 创建属性后,导航至页面顶部并选择 Mappings,然后选择 Okta User to YOUR APP
  7. 转到新创建的属性,将变量名称映射到外部名称,然后选择保存映射。如果您使用的是 JIT 预配,请继续执行以下步骤。
  8. 导航到 应用程序 并选择 您的应用
  9. 选择 General,然后选择 SAML Settings,最后选择 Edit
  10. 选择 步骤 2 并配置从用户属性到 Docker 变量的映射。

按用户分配角色

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

按组分配角色

  1. 在 Okta 管理门户中,选择 Directory,然后选择 People
  2. 选择 您的组,然后选择 应用程序
  3. 打开 您的应用程序 并选择 编辑 图标。
  4. 将属性更新为所需值。

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

在 Azure AD 中设置角色映射

  1. 首先设置 SSO和SCIM。
  2. 在 Azure AD 管理门户中,打开 企业应用 并选择 您的应用
  3. 选择 Provisioning,然后选择 MappingsProvision Azure Active Directory Users
  4. 要设置新映射,请勾选显示高级选项,然后选择编辑属性选项
  5. 使用所需的角色、组织或组(例如,urn:ietf:params:scim:schemas:extension:docker:2.0:User:dockerRole)映射创建新条目,作为字符串类型。
  6. 导航回用户的 属性映射 并选择 添加新映射

表达式映射

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

  1. 编辑属性 视图中,选择 表达式 映射类型。

  2. 如果您可以直接创建以角色命名的应用角色(例如,ownereditor),则在 表达式 字段中,您可以使用 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. 编辑属性 视图中,选择 直接 映射类型。

  2. 设置以下字段:

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

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

  3. 保存您的配置。

分配用户

如果您在上一步中使用了表达式映射,请导航至应用注册,选择您的应用,然后选择应用角色。为每个 Docker 角色创建一个应用角色。如果可能,请创建一个与 Docker 中的角色直接等效的显示名称,例如,owner 而不是 Owner。如果这样设置,则可以使用表达式映射到 SingleAppRoleAssignment([appRoleAssignments])。否则,必须使用自定义开关。请参阅 表达式映射

添加用户:

  1. 选择 您的应用,然后选择 用户和组
  2. 选择 添加用户/组,选择您想要添加的用户,然后 选择 其所需的角色。

添加组:

  1. 选择 您的应用,然后选择 用户和组
  2. 选择 添加用户/组,选择您想要添加的用户,然后 选择 其所需的角色。

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


请参阅您的 IdP 文档以了解更多详情:

禁用 SCIM

如果禁用 SCIM,则通过 SCIM 配置的所有用户将保留在组织中。用户的后续更改将不会从您的 IdP 同步。只有在手动将用户从组织中移除时,才能取消配置用户。


早期访问

Docker 管理控制台是一个 预览版产品。

该功能适用于所有公司所有者和组织所有者。您仍可在 Docker Hub 中管理组织,但管理控制台提供了公司级别的管理功能以及增强的组织管理功能。

  1. 登录到 管理控制台
  2. 在左侧导航下拉菜单中选择您的组织或公司,然后选择 SSO 和 SCIM。
  3. 在 SSO 连接表中,选择 操作 图标。
  4. 选择 禁用 SCIM
  1. 登录到 Docker Hub
  2. 导航至您所在组织或公司的单点登录(SSO)设置页面。
    • 组织:选择 Organizations(组织),再选择您的组织,然后选择 Settings(设置),最后选择 Security(安全)。
    • 公司:选择 Organizations(组织),再选择您的公司,然后选择 Settings(设置)。
  3. 在 SSO 连接表中,选择 操作 图标。
  4. 选择 禁用 SCIM

更多资源

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