创建 SSO 连接

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

提示

本指南需要在 Docker 和 IdP 中复制和粘贴值。为确保无缝连接过程,请在一个会话中完成本指南中的所有步骤,并为 Docker 和 IdP 打开单独的浏览器。

先决条件

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

  • 您的域已验证
  • 您有一个使用 IdP 设置的帐户
  • 您已完成配置单点登录指南中的步骤

第 1 步:在 Docker 中创建 SSO 连接

注意

在 Docker 中创建 SSO 连接之前,您必须验证至少一个域。


抢先体验

Docker Admin Console 是一种早期访问产品。

它适用于所有公司所有者和组织所有者。您仍然可以在 Docker Hub 中管理组织,但 Admin Console 包括公司级别的管理和组织的增强功能。

  1. 登录到 Admin Console
  2. 从左侧下拉菜单中选择您的组织或公司。请注意,当组织是公司的一部分时,您必须选择公司并在公司级别为组织配置域。
  3. 在 Security and access (安全和访问) 下,选择 SSO 和 SCIM。
  4. 选择 Create Connection 并提供连接的名称。
  5. 选择身份验证方法:SAMLAzure AD (OIDC)。
  6. 复制以下字段以添加到您的 IdP:
    • Okta SAML:实体 IDACS URL
    • Azure OIDC:重定向 URL
  7. 保持此窗口打开,以便您可以将 IdP 中的连接信息粘贴到本指南末尾的此处。
  1. 登录到 Docker Hub。
  2. 选择 Organizations (组织),然后从列表中选择您的组织。
  3. 在您的组织页面上,选择 “设置”,然后选择 “安全”。
  4. 在 SSO 连接表中,选择 Create Connection 并提供连接的名称。
  5. 选择身份验证方法:SAMLAzure AD (OIDC)。
  6. 复制以下字段以添加到您的 IdP:
    • Okta SAML:实体 IDACS URL
    • Azure OIDC:重定向 URL
  7. 保持此窗口打开,以便您可以将 IdP 中的连接信息粘贴到本指南末尾的此处。

第 2 步:在 IdP 中创建 SSO 连接

IdP 的用户界面可能与以下步骤略有不同。请参阅 IdP 的文档进行验证。


  1. 登录您的 Okta 账户。
  2. 选择 管理员 以打开 Okta 管理员门户。
  3. 从左侧导航栏中,选择 Administration
  4. 选择 管理 ,然后选择 创建应用程序集成
  5. 选择 SAML 2.0,然后选择下一步
  6. 输入 “Docker Hub” 作为您的应用程序名称
  7. 自选。上传 Logo。
  8. 选择 Next(下一步)。
  9. 将 Docker 中的以下值输入到相应的 Okta 字段中:
    • Docker ACS URL:单点登录 URL
    • Docker 实体 ID:受众 URI(SP 实体 ID)
  10. 在 Okta 中配置以下设置:
    • 名称 ID 格式:EmailAddress
    • 应用程序用户名:Email
    • 更新应用程序:Create and update
  11. 选择 Next(下一步)。
  12. 选中 This is an internal app that we have created 复选框。
  13. 选择 Finish (完成)。
  1. 登录到 Azure AD 管理门户。
  2. 选择 Default Directory (默认目录),然后选择 Add (添加)。
  3. 选择 Enterprise Application (企业应用程序),然后选择 Create your own application (创建自己的应用程序)。
  4. 输入“Docker”作为应用程序名称,然后选择非库选项。
  5. 创建应用程序后,转到 Single Sign-On 并选择 SAML
  6. Basic SAML configuration (基本 SAML 配置) 部分选择 Edit (编辑)。
  7. 将 Docker 中的以下值输入到相应的 Azure 字段中:
    • Docker 实体 ID:标识符
    • Docker ACS URL:回复 URL
  8. 保存配置。
  9. SAML 签名证书部分,下载您的证书 (Base64)。

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

创建应用程序注册

  1. 登录到 Azure AD 管理门户。
  2. 选择 App Registration(应用程序注册),然后选择 New Registration(新注册)。
  3. 输入“Docker Hub SSO”或类似名称作为应用程序名称。
  4. Supported account types (支持的账户类型) 下,指定谁可以使用此应用程序或访问应用程序。
  5. Redirect URI 部分中,从下拉菜单中选择 Web,然后将 Redirect URI 值从 Docker 控制台粘贴到此字段中。
  6. 选择 Register (注册) 以注册应用程序。
  7. 从应用程序的概述页面复制 Client ID。您需要此信息才能继续在 Docker 中配置 SSO。

创建客户端密钥

  1. 在Azure AD中打开您的应用程序,然后选择证书和秘密
  2. 选择 + 新建客户端密钥
  3. 指定密钥的描述并设置可以使用密钥的长度。
  4. 选择 Add 以继续。
  5. 复制密钥 Value 字段。您需要此证书才能继续在 Docker 中配置 SSO。

配置 API 权限

  1. 在 Azure AD 中打开您的应用,然后导航到您的应用设置。
  2. 选择 API 权限,然后选择 [您的租户名称] 授予管理员同意
  3. 选择 Yes (是) 进行确认。
  4. 确认后,选择 Add a permission (添加权限),然后选择 Delegated permissions (委派权限)。
  5. 搜索并选择此选项。User.Read
  6. 选择 Add permissions 进行确认。
  7. 通过检查 Status (状态) 列,验证是否已为每个权限授予管理员同意。

第 3 步:连接 Docker 和您的 IdP

在 Docker 和 IdP 中创建连接后,您可以交叉连接它们以完成 SSO 连接:


  1. 打开您在 Okta 中创建的应用程序,然后选择 View SAML setup instructions(查看 SAML 设置说明)。
  2. 从 Okta SAML 设置说明页面复制以下值:
    • SAML 登录 URL
    • x509 证书
  3. 打开 Docker Hub 或 Admin Console。您的 SSO 配置页面应仍从本指南的第 1 步中打开。
  4. 选择 下一步 打开 更新单点登录连接 页面。
  5. 在 Docker 中粘贴您的 Okta SAML Sign-in URLx509 Certificate 值。
  6. 选择 Next(下一步)。
  7. 自选。选择要将用户配置到的默认团队,然后选择 下一步
  8. 验证您的 SSO 连接详细信息,然后选择 Create Connection (创建连接)。
  1. 在 Azure AD 中打开您的应用。
  2. 在文本编辑器中打开下载的证书 (Base64)。
  3. 复制以下值:
    • 从 Azure AD:登录 URL
    • 从文本编辑器中复制证书 (Base64) 文件的内容
  4. 打开 Docker Hub 或 Admin Console。您的 SSO 配置页面应仍从本指南的第 1 步中打开。
  5. 登录 URL证书 (Base64) 值粘贴到 Docker 中。
  6. 选择 Next(下一步)。
  7. 自选。选择要将用户配置到的默认团队,然后选择 下一步
  8. 验证您的 SSO 连接详细信息,然后选择 Create Connection (创建连接)。
  1. 打开 Docker Hub 或 Admin Console。您的 SSO 配置页面应仍从本指南的第 1 步中打开。
  2. 将 Azure AD 中的以下值粘贴到 Docker 中:
    • 客户端 ID
    • 客户端密钥
    • Azure AD 域
  3. 选择 Next(下一步)。
  4. 自选。选择要将用户配置到的默认团队,然后选择 下一步
  5. 验证您的 SSO 连接详细信息,然后选择 Create Connection (创建连接)。

第 4 步:测试您的连接

在 Docker 中完成 SSO 连接过程后,我们建议您对其进行测试:

  1. 打开隐身浏览器。
  2. 使用您的域电子邮件地址登录到 Admin Console。
  3. 浏览器将重定向到 IdP 的登录页面进行身份验证。
  4. 通过您的域电子邮件进行身份验证,而不是使用您的 Docker ID。

您还可以通过命令行界面 (CLI) 测试 SSO 连接。如果要通过 CLI 进行测试,您的用户必须具有 personal access token (PAT)。

可选:强制实施 SSO

重要

如果未强制实施 SSO,用户可以选择使用其 Docker 用户名和密码或 SSO 登录。

强制实施 SSO 要求用户在登录 Docker 时使用 SSO。这将集中身份验证并强制执行 IdP 设置的策略。

  1. 登录到 Admin Console
  2. 从左侧下拉菜单中选择您的组织或公司。请注意,当组织是公司的一部分时,您必须选择公司并在公司级别为组织配置域。
  3. 在 Security and access (安全和访问) 下,选择 SSO 和 SCIM。
  4. 在 SSO connections 表中,选择 Action 图标,然后选择 Enable enforcement 。强制实施 SSO 后,您的用户无法修改其电子邮件地址和密码、将用户帐户转换为组织或通过 Docker Hub 设置 2FA。如果要使用 2FA,则必须通过 IdP 启用 2FA。
  5. 继续按照屏幕上的说明进行操作,并验证您已完成所有任务。
  6. 选择 Turn on enforcement to complete(启用强制执行以完成)。

您的用户现在必须使用 SSO 登录到 Docker。

更多资源

以下视频演示了如何强制实施 SSO。

下一步