创建单点登录(SSO)连接

创建单点登录(SSO)连接需要先在 Docker 中配置连接,然后再在您的身份提供商(IdP)中进行配置。本指南提供了在 Docker 和您的 IdP 中设置 SSO 连接的步骤。

提示

本指南要求在 Docker 和您的身份提供商(IdP)中复制并粘贴值。为确保连接过程顺畅,请在一次会话中完成本指南中的所有步骤,并为 Docker 和您的 IdP 分别打开独立的浏览器窗口。

前提条件

在开始之前,请确保您已完成以下内容:

  • 您的域名已通过验证
  • 您已使用身份提供商(IdP)设置了账户
  • 您已完成 配置单点登录 指南中的步骤

第一步:在 Docker 中创建单点登录(SSO)连接

注意

在Docker中创建单点登录(SSO)连接之前,您必须至少验证一个域名。


早期访问

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

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

  1. 登录到 管理控制台
  2. 从左侧下拉菜单中选择您的组织或公司。请注意,当某个组织隶属于某家公司时,您必须选择该公司,并在公司层面为该组织配置域名。
  3. 在“安全与访问”下,选择单点登录(SSO)和SCIM
  4. 选择 创建连接 并为该连接提供一个名称。
  5. 选择一种身份验证方式:SAMLAzure AD (OIDC)
  6. 将以下字段复制并添加到您的身份提供商(IdP)中:
    • Okta SAML: 实体 ID断言消费者服务 URL
    • Azure OIDC: 重定向 URL
  7. 请保持此窗口打开,以便在本指南末尾将来自身份提供商(IdP)的连接信息粘贴到这里。
  1. 登录 Docker Hub。
  2. 选择 组织,然后从列表中选择您的组织。
  3. 在您的组织页面上,选择 设置,然后选择 安全
  4. 在SSO连接表中,选择创建连接并为该连接提供一个名称。
  5. 选择一种身份验证方式:SAMLAzure AD (OIDC)
  6. 将以下字段复制并添加到您的身份提供商(IdP)中:
    • Okta SAML: 实体 ID断言消费者服务 URL
    • Azure OIDC: 重定向 URL
  7. 请保持此窗口打开,以便在本指南末尾将来自身份提供商(IdP)的连接信息粘贴到这里。

第二步:在您的身份提供商(IdP)中创建单点登录(SSO)连接

您的身份提供商(IdP)的用户界面可能与以下步骤略有不同。请参考您所用身份提供商的文档进行确认。


  1. 登录您的 Okta 账户。
  2. 选择 管理员 以打开 Okta 管理员门户。
  3. 从左侧导航栏中选择 管理
  4. 选择 管理,然后选择 创建应用集成
  5. 选择 SAML 2.0,然后点击 下一步
  6. 请输入“Docker Hub”作为您的 应用名称
  7. 可选。上传徽标。
  8. 选择 下一步
  9. 请输入Docker中的以下值到对应的Okta字段中:
    • Docker ACS URL:单点登录 URL
    • Docker Entity ID:受众 URI(服务提供者实体 ID)
  10. 在 Okta 中配置以下设置:
    • 名称 ID 格式:EmailAddress
    • 应用程序用户名:Email
    • 更新应用程序时间:Create and update
  11. 选择 下一步
  12. 选择 这是一个我们内部开发的应用程序 复选框。
  13. 选择 命令补全
  1. 登录到您的 Azure AD 管理员门户。
  2. 选择 默认目录,然后单击 添加
  3. 选择 企业应用程序,然后选择 创建自己的应用程序
  4. 在“应用名称”中输入“Docker”,并选择非图库选项。
  5. 应用创建完成后,请进入单点登录,并选择SAML
  6. 基本SAML配置部分中,选择编辑
  7. 将Docker中的以下值填入对应的Azure字段:
    • Docker实体ID:标识符
    • Docker ACS URL:响应 URL
  8. 保存配置。
  9. SAML 签名证书 部分,下载您的 证书(Base64 编码)

要创建 Azure 连接(OIDC)连接,您必须创建应用注册、客户端密钥,并为 Docker 配置 API 权限:

创建应用注册

  1. 登录到您的 Azure AD 管理员门户。
  2. 选择 应用注册,然后选择 新注册
  3. 在应用程序名称中输入“Docker Hub SSO”或类似内容。
  4. 支持的账户类型 下,指定哪些用户可以使用此应用程序或访问该应用。
  5. 重定向URI部分,从下拉菜单中选择Web,并将Docker控制台中的重定向URI值粘贴到此字段中。
  6. 选择 注册 来注册应用程序。
  7. 从应用的概览页面复制 客户端 ID。您需要此信息以继续在 Docker 中配置单点登录(SSO)。

创建客户端密钥

  1. 在 Azure AD 中打开您的应用,并选择 证书和机密
  2. 选择 + 新建客户端密钥
  3. 指定密钥的描述,并设置密钥的使用时长。
  4. 选择 添加 以继续。
  5. 复制机密 字段。您需要此字段以继续在 Docker 中配置单点登录 (SSO)。

配置 API 权限

  1. 在 Azure AD 中打开您的应用,并导航至应用设置。
  2. 选择 API 权限,然后选择 为 [你的租户名称] 授予管理员同意
  3. 选择 以确认。
  4. 确认后,选择 添加权限,然后选择 委托权限
  5. 搜索 User.Read 并选择此选项。
  6. 选择 添加权限 以确认。
  7. 通过检查状态列,验证是否已为每个权限授予了管理员同意。

第三步:连接 Docker 和您的身份提供商(IdP)

在Docker中创建连接并配置好您的身份提供商(IdP)后,您可以将二者进行交叉连接,以完成您的单点登录(SSO)配置:


  1. 打开您在 Okta 中创建的应用,并选择 查看 SAML 设置说明
  2. 从 Okta SAML 配置说明页面复制以下值:
    • SAML 登录 URL
    • x509 证书
  3. 打开 Docker Hub 或管理控制台。本指南第一步中打开的单点登录(SSO)配置页面应仍处于打开状态。
  4. 选择 下一步 以打开 更新单点登录连接 页面。
  5. 将您的 Okta SAML 登录 URLx509 证书 值粘贴到 Docker 中。
  6. 选择 下一步
  7. 可选。请选择用于预置用户的默认团队,然后选择 下一步
  8. 验证您的 SSO 连接详情,并选择 创建连接
  1. 在 Azure AD 中打开您的应用。
  2. 在文本编辑器中打开您下载的 证书(Base64编码)
  3. 复制以下值:
    • 来自 Azure AD: 登录 URL
    • 从文本编辑器中复制您的 证书(Base64 编码) 文件内容
  4. 打开 Docker Hub 或管理控制台。本指南第一步中打开的单点登录(SSO)配置页面应仍处于打开状态。
  5. 将您的 登录 URL证书(Base64 格式) 值粘贴到 Docker 中。
  6. 选择 下一步
  7. 可选。请选择用于预置用户的默认团队,然后选择 下一步
  8. 验证您的 SSO 连接详情,并选择 创建连接
  1. 打开 Docker Hub 或管理控制台。本指南第一步中打开的单点登录(SSO)配置页面应仍处于打开状态。
  2. 将以下来自 Azure AD 的值粘贴到 Docker 中:
    • 客户端 ID
    • 客户端密钥
    • Azure AD 域名
  3. 选择 下一步
  4. 可选。请选择用于预置用户的默认团队,然后选择 下一步
  5. 验证您的 SSO 连接详情,并选择 创建连接

第四步:测试您的连接

完成 Docker 中的单点登录(SSO)连接流程后,我们建议您进行测试:

  1. 打开一个无痕浏览器。
  2. 使用您的域名邮箱地址登录管理控制台。
  3. 浏览器将重定向到您的身份提供商(IdP)的登录页面进行身份验证。
  4. 通过您的域邮箱进行身份验证,而不是使用您的 Docker ID。

您还可以通过命令行界面(CLI)测试您的单点登录(SSO)连接。如果希望通过CLI进行测试,您的用户必须拥有个人访问令牌(PAT)。

可选:强制单点登录(SSO)

重要

如果未强制启用单点登录(SSO),用户可选择使用其 Docker 用户名和密码或 SSO 进行登录。

强制启用单点登录(SSO)要求用户在登录Docker时必须使用SSO。这将集中认证流程,并强制执行身份提供商(IdP)设定的策略。

  1. 登录到 管理控制台
  2. 从左侧下拉菜单中选择您的组织或公司。请注意,当某个组织隶属于某家公司时,您必须选择该公司,并在公司层面为该组织配置域名。
  3. 在“安全与访问”下,选择单点登录(SSO)和SCIM
  4. 在单点登录(SSO)连接表格中,选择操作图标,然后选择启用强制执行。启用SSO强制执行后,您的用户将无法修改其电子邮件地址和密码、将用户账户转换为组织账户,或通过Docker Hub设置双因素认证(2FA)。如果您需要使用2FA,则必须通过您的身份提供商(IdP)启用2FA。
  5. 继续按照屏幕上的指示操作,并确认您已完成所有任务。
  6. 选择 启用强制执行 以完成操作。

您的用户现在必须通过单点登录(SSO)登录 Docker。

更多资源

以下视频演示了如何强制执行单点登录(SSO)。

接下来是什么