创建 SSO 连接

订阅: Business
面向: 管理员

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

提示

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

前提条件

开始之前,请确保您已完成以下事项

  • 您的域名已验证
  • 您已在 IdP 中设置了账户
  • 您已完成配置单点登录指南中的步骤

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

注意

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


  1. 登录 Admin Console
  2. 选择个人资料页面选择您的组织或公司。请注意,当组织隶属于公司时,您必须选择公司并在公司级别配置组织的域名。
  3. 在“安全和访问”下,选择 SSO 和 SCIM
  4. 选择 创建连接 并为连接命名。
  5. 选择认证方法,SAMLAzure AD (OIDC)
  6. 复制以下字段添加到您的 IdP:
    • Okta SAML:实体 IDACS URL
    • Azure OIDC:重定向 URL
  7. 保持此窗口打开,以便您在本指南末尾将 IdP 中的连接信息粘贴到此处。

重要提示

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

在 Docker Admin Console 中管理成员、团队、设置和活动日志。Docker Hub 中对这些功能的访问权限即将终止。请前往Admin Console

  1. 登录 Docker Hub。
  2. 选择 My Hub,然后从列表中选择您的组织。
  3. 在组织页面上,选择 Settings,然后选择 Security
  4. 在 SSO 连接表中,选择 创建连接 并为连接命名。
  5. 选择认证方法,SAMLAzure AD (OIDC)
  6. 复制以下字段添加到您的 IdP:
    • Okta SAML:实体 IDACS URL
    • Azure OIDC:重定向 URL
  7. 保持此窗口打开,以便您在本指南末尾将 IdP 中的连接信息粘贴到此处。

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

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


  1. 登录您的 Okta 账户。
  2. 选择 Admin 打开 Okta 管理门户。
  3. 在左侧导航菜单中,选择 Administration
  4. 选择 Administration,然后选择 Create App Integration
  5. 选择 SAML 2.0,然后选择 Next
  6. 输入 "Docker Hub" 作为您的 App Name
  7. 可选。上传徽标。
  8. 选择 Next
  9. 将 Docker 中的以下值输入到 Okta 中的对应字段:
    • Docker ACS URL:Single Sign On URL
    • Docker 实体 ID:Audience URI (SP Entity ID)
  10. 在 Okta 中配置以下设置:
    • Name ID format:EmailAddress
    • Application username:Email
    • Update application on:Create and update
  11. 可选。添加 SAML 属性。有关 SSO 属性表,请参阅SSO attributes
  12. 选择 Next
  13. 选中 This is an internal app that we have created 复选框。
  14. 选择 Finish
  1. 登录您的 Azure AD 管理门户。
  2. 选择 Default Directory,然后选择 Add
  3. 选择 Enterprise Application,然后选择 Create your own application
  4. 为应用程序名称输入 "Docker",并选择 non-gallery 选项。
  5. 创建应用程序后,转到 Single Sign-On 并选择 SAML
  6. Basic SAML configuration 部分选择 Edit
  7. 将 Docker 中的以下值输入到 Azure 中的对应字段:
    • Docker 实体 ID:Identifier
    • Docker ACS URL:Reply URL
  8. 可选。添加 SAML 属性。有关 SSO 属性表,请参阅SSO attributes
  9. 保存配置。
  10. SAML Signing Certificate 部分,下载您的 Certificate (Base64)

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

创建应用注册

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

创建客户端密钥

  1. 在 Azure AD 中打开您的应用,然后选择 Certificates & secrets
  2. 选择 + New client secret
  3. 指定密钥的描述,并设置密钥的使用期限。
  4. 选择 Add 继续。
  5. 复制密钥的 Value 字段。您需要此信息来继续在 Docker 中配置 SSO。

配置 API 权限

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

第三步:连接 Docker 和 IdP

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


  1. 打开您在 Okta 中创建的应用,然后选择 View SAML setup instructions

  2. 从 Okta SAML 设置说明页面复制以下值:

    • SAML Sign-in URL

    • x509 证书

      重要提示

      您必须复制整个 x509 证书内容,包括 ----BEGIN CERTIFICATE--------END CERTIFICATE---- 行。

  3. 打开 Docker Hub 或 Admin Console。您的 SSO 配置页面应仍处于打开状态(从本指南的第一步)。

  4. 选择 Next 打开 更新单点登录连接 页面。

  5. 将您的 Okta SAML Sign-in URLx509 证书值粘贴到 Docker 中。

  6. 选择 Next

  7. 可选。选择一个默认团队用于预配用户,然后选择 Next

  8. 验证您的 SSO 连接详情,然后选择 Create Connection

  1. 在 Azure AD 中打开您的应用。

  2. 在文本编辑器中打开您下载的 Certificate (Base64)

  3. 复制以下值:

    • 从 Azure AD:Login URL

    • 从文本编辑器中复制 Certificate (Base64) 文件内容:

      重要提示

      您必须复制整个 Certificate (base64) 内容,包括 ----BEGIN CERTIFICATE--------END CERTIFICATE---- 行。

  4. 打开 Docker Hub 或 Admin Console。您的 SSO 配置页面应仍处于打开状态(从本指南的第一步)。

  5. 将您的 Login URLCertificate (Base64) 值粘贴到 Docker 中。

  6. 选择 Next

  7. 可选。选择一个默认团队用于预配用户,然后选择 Next

  8. 验证您的 SSO 连接详情,然后选择 Create Connection

  1. 打开 Docker Hub 或 Admin Console。您的 SSO 配置页面应仍处于打开状态(从本指南的第一步)。
  2. 将 Azure AD 中的以下值粘贴到 Docker 中:
    • Client ID
    • Client Secret
    • Azure AD 域名
  3. 选择 Next
  4. 可选。选择一个默认团队用于预配用户,然后选择 Next
  5. 验证您的 SSO 连接详情,然后选择 Create Connection

第四步:测试连接

在 Docker 中完成 SSO 连接过程后,我们建议测试它:

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

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

可选:强制 SSO

重要提示

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

强制 SSO 要求用户在登录 Docker 时使用 SSO。这集中了认证并强制执行 IdP 设置的策略。

  1. 登录 Admin Console
  2. 选择个人资料页面选择您的组织或公司。请注意,当组织隶属于公司时,您必须选择公司并在公司级别配置组织的域名。
  3. 在“安全和访问”下,选择 SSO 和 SCIM
  4. 在 SSO 连接表中,选择操作图标,然后选择 启用强制。强制 SSO 后,您的用户将无法更改电子邮件地址和密码、将用户账户转换为组织,或通过 Docker Hub 设置 2FA。如果您想使用 2FA,必须通过 IdP 启用 2FA。
  5. 继续按照屏幕上的说明操作,并确认您已完成所有任务。
  6. 选择 开启强制 完成。

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

注意

强制 SSO 后,用户无法使用密码访问 Docker CLI。用户必须使用个人访问令牌 (PAT) 进行认证以访问 Docker CLI。

更多资源

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

后续步骤

页面选项