创建 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:实体 IDACS URL
    • Azure OIDC:重定向 URL
  7. 请保持此窗口打开,以便您可以在本指南末尾将连接信息从您的 IdP 粘贴到这里。
  1. 登录 Docker Hub。
  2. 选择组织,然后从列表中选择您的组织。
  3. 在您的组织页面上,选择设置,然后选择安全
  4. 在 SSO 连接表中,选择创建连接并为连接提供名称。
  5. 选择一种身份验证方法,SAMLAzure AD (OIDC)
  6. 复制以下字段以添加到您的 IdP
    • Okta SAML:实体 IDACS URL
    • Azure OIDC:重定向 URL
  7. 请保持此窗口打开,以便您可以在本指南末尾将连接信息从您的 IdP 粘贴到这里。

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

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


  1. 登录您的 Okta 帐户。
  2. 选择管理员以打开 Okta 管理门户。
  3. 从左侧导航栏中,选择管理
  4. 选择管理,然后选择创建应用程序集成
  5. 选择**SAML 2.0**,然后单击**下一步**。
  6. 将“Docker Hub”作为您的**应用名称**输入。
  7. 可选。上传徽标。
  8. 选择**下一步**。
  9. 将Docker中的以下值输入到相应的Okta字段中
    • Docker ACS URL:**单点登录URL**
    • Docker 实体 ID:**受众 URI (SP 实体 ID)**
  10. 在Okta中配置以下设置
    • 名称 ID 格式:EmailAddress
    • 应用程序用户名:Email
    • 更新应用程序:创建和更新
  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 Connect (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和您的身份提供商中创建连接后,您可以将它们交叉连接以完成您的SSO连接


  1. 打开您在Okta中创建的应用程序,然后选择**查看SAML设置说明**。
  2. 从Okta SAML设置说明页面复制以下值
    • SAML登录URL
    • x509证书
  3. 打开Docker Hub或管理控制台。您的SSO配置页面应仍从本指南的第一步打开。
  4. 选择**下一步**以打开**更新单点登录连接**页面。
  5. 将Okta的**SAML登录URL**和**x509证书**值粘贴到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. 浏览器将重定向到您的身份提供商的登录页面以进行身份验证。
  4. 通过您的域名电子邮件进行身份验证,而不是使用您的 Docker ID。

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

可选:强制执行 SSO

重要

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

强制执行 SSO 要求用户在登录 Docker 时使用 SSO。这可以集中身份验证并强制执行身份提供商设置的策略。

  1. 登录管理员控制台
  2. 从左侧下拉菜单中选择您的组织或公司。请注意,当组织属于公司时,您必须选择公司并在公司级别为组织配置域。
  3. 在“安全和访问”下,选择SSO 和 SCIM
  4. 在 SSO 连接表中,选择**操作**图标,然后选择**启用强制执行**。强制执行 SSO 后,您的用户将无法修改其电子邮件地址和密码、将用户帐户转换为组织帐户或通过 Docker Hub 设置 2FA。如果您想使用 2FA,则必须通过您的身份提供商启用 2FA。
  5. 继续执行屏幕上的说明,并验证您已完成所有任务。
  6. 选择**启用强制执行**以完成。

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

更多资源

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

下一步