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 基础 URL 和 API 令牌,并将其粘贴到您的身份提供商(IdP)中。
  1. 登录到 Docker Hub。
  2. 导航至您所在组织或公司的单点登录(SSO)设置页面。
    • 组织:选择 Organizations(组织),再选择您的组织,然后选择 Settings(设置),最后选择 Security(安全)。
    • 公司:选择 Organizations(组织),再选择您的公司,然后选择 Settings(设置)。
  3. 在 SSO 连接表格中,选择 操作 图标和 设置 SCIM。
  4. 复制 SCIM 基础 URL 和 API 令牌,并将其粘贴到您的身份提供商(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 基础 URL 和 API 令牌。
  5. 测试连接,然后选择 保存。
  6. 转到 映射,然后选择 配置 Azure Active Directory 组。
  7. 将 Enabled 值设置为 No。
  8. 选择 供应 Azure Active Directory 用户。
  9. 移除所有不支持的属性。
  10. 选择 保存。
  11. 将配置状态设置为 开启。

设置角色映射

您可以在身份提供商(IdP)中为组织成员分配 角色。要设置角色,可使用可选的用户级属性来指定您希望分配角色的人员。除角色外,您还可设置组织或团队,以覆盖由单点登录(SSO)连接设定的默认配置值。

注意

角色映射同时支持SCIM和JIT供应。在JIT供应模式下,角色映射仅在用户首次被供应到组织时生效。

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

属性可能的值注意事项
dockerRolemember、editor或owner,各角色的权限列表请参见 角色与权限如果您在身份提供商(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. 选择 添加属性 并输入所需的值。外部名称 和 外部命名空间 必须准确无误。组织/团队/角色映射的外部名称值分别为 dockerOrg、dockerTeam 和 dockerRole,如前表所列。它们的外部命名空间均相同: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,然后选择 Mappings 和 Provision Azure Active Directory Users。
  4. 要设置新映射,请勾选显示高级选项,然后选择编辑属性选项。
  5. 使用所需的角色、组织或组(例如,urn:ietf:params:scim:schemas:extension:docker:2.0:User:dockerRole)映射创建新条目,作为字符串类型。
  6. 导航回用户的 属性映射 并选择 添加新映射。

表达式映射

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

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

  2. 如果您可以直接创建以角色命名的应用角色(例如,owner 或 editor),则在 表达式 字段中,您可以使用 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: