创建 SSO 连接
目录
创建单点登录 (SSO) 连接需要先在 Docker 中设置连接,然后在身份提供商 (IdP) 中设置连接。本指南提供了在 Docker 和 IdP 中设置 SSO 连接的步骤。
提示
本指南需要在 Docker 和 IdP 中复制和粘贴值。为确保无缝连接过程,请在一个会话中完成本指南中的所有步骤,并为 Docker 和 IdP 打开单独的浏览器。
先决条件
在开始之前,请确保您已完成以下操作:
- 您的域已验证
- 您有一个使用 IdP 设置的帐户
- 您已完成配置单点登录指南中的步骤
第 1 步:在 Docker 中创建 SSO 连接
注意
在 Docker 中创建 SSO 连接之前,您必须验证至少一个域。
抢先体验
Docker Admin Console 是一种早期访问产品。
它适用于所有公司所有者和组织所有者。您仍然可以在 Docker Hub 中管理组织,但 Admin Console 包括公司级别的管理和组织的增强功能。
- 登录到 Admin Console。
- 从左侧下拉菜单中选择您的组织或公司。请注意,当组织是公司的一部分时,您必须选择公司并在公司级别为组织配置域。
- 在 Security and access (安全和访问) 下,选择 SSO 和 SCIM。
- 选择 Create Connection 并提供连接的名称。
- 选择身份验证方法:SAML 或 Azure AD (OIDC)。
- 复制以下字段以添加到您的 IdP:
- Okta SAML:实体 ID、ACS URL
- Azure OIDC:重定向 URL
- 保持此窗口打开,以便您可以将 IdP 中的连接信息粘贴到本指南末尾的此处。
- 登录到 Docker Hub。
- 选择 Organizations (组织),然后从列表中选择您的组织。
- 在您的组织页面上,选择 “设置”,然后选择 “安全”。
- 在 SSO 连接表中,选择 Create Connection 并提供连接的名称。
- 选择身份验证方法:SAML 或 Azure AD (OIDC)。
- 复制以下字段以添加到您的 IdP:
- Okta SAML:实体 ID、ACS URL
- Azure OIDC:重定向 URL
- 保持此窗口打开,以便您可以将 IdP 中的连接信息粘贴到本指南末尾的此处。
第 2 步:在 IdP 中创建 SSO 连接
IdP 的用户界面可能与以下步骤略有不同。请参阅 IdP 的文档进行验证。
- 登录您的 Okta 账户。
- 选择 管理员 以打开 Okta 管理员门户。
- 从左侧导航栏中,选择 Administration。
- 选择 管理 ,然后选择 创建应用程序集成。
- 选择 SAML 2.0,然后选择下一步。
- 输入 “Docker Hub” 作为您的应用程序名称。
- 自选。上传 Logo。
- 选择 Next(下一步)。
- 将 Docker 中的以下值输入到相应的 Okta 字段中:
- Docker ACS URL:单点登录 URL
- Docker 实体 ID:受众 URI(SP 实体 ID)
- 在 Okta 中配置以下设置:
- 名称 ID 格式:
EmailAddress
- 应用程序用户名:
Email
- 更新应用程序:
Create and update
- 名称 ID 格式:
- 选择 Next(下一步)。
- 选中 This is an internal app that we have created 复选框。
- 选择 Finish (完成)。
- 登录到 Azure AD 管理门户。
- 选择 Default Directory (默认目录),然后选择 Add (添加)。
- 选择 Enterprise Application (企业应用程序),然后选择 Create your own application (创建自己的应用程序)。
- 输入“Docker”作为应用程序名称,然后选择非库选项。
- 创建应用程序后,转到 Single Sign-On 并选择 SAML。
- 在 Basic SAML configuration (基本 SAML 配置) 部分选择 Edit (编辑)。
- 将 Docker 中的以下值输入到相应的 Azure 字段中:
- Docker 实体 ID:标识符
- Docker ACS URL:回复 URL
- 保存配置。
- 从 SAML 签名证书部分,下载您的证书 (Base64)。
若要创建 Azure Connect (OIDC) 连接,必须创建应用程序注册、客户端密码,并为 Docker 配置 API 权限:
创建应用程序注册
- 登录到 Azure AD 管理门户。
- 选择 App Registration(应用程序注册),然后选择 New Registration(新注册)。
- 输入“Docker Hub SSO”或类似名称作为应用程序名称。
- 在 Supported account types (支持的账户类型) 下,指定谁可以使用此应用程序或访问应用程序。
- 在 Redirect URI 部分中,从下拉菜单中选择 Web,然后将 Redirect URI 值从 Docker 控制台粘贴到此字段中。
- 选择 Register (注册) 以注册应用程序。
- 从应用程序的概述页面复制 Client ID。您需要此信息才能继续在 Docker 中配置 SSO。
创建客户端密钥
- 在Azure AD中打开您的应用程序,然后选择证书和秘密。
- 选择 + 新建客户端密钥。
- 指定密钥的描述并设置可以使用密钥的长度。
- 选择 Add 以继续。
- 复制密钥 Value 字段。您需要此证书才能继续在 Docker 中配置 SSO。
配置 API 权限
- 在 Azure AD 中打开您的应用,然后导航到您的应用设置。
- 选择 API 权限,然后选择 [您的租户名称] 授予管理员同意。
- 选择 Yes (是) 进行确认。
- 确认后,选择 Add a permission (添加权限),然后选择 Delegated permissions (委派权限)。
- 搜索并选择此选项。
User.Read
- 选择 Add permissions 进行确认。
- 通过检查 Status (状态) 列,验证是否已为每个权限授予管理员同意。
第 3 步:连接 Docker 和您的 IdP
在 Docker 和 IdP 中创建连接后,您可以交叉连接它们以完成 SSO 连接:
- 打开您在 Okta 中创建的应用程序,然后选择 View SAML setup instructions(查看 SAML 设置说明)。
- 从 Okta SAML 设置说明页面复制以下值:
- SAML 登录 URL
- x509 证书
- 打开 Docker Hub 或 Admin Console。您的 SSO 配置页面应仍从本指南的第 1 步中打开。
- 选择 下一步 打开 更新单点登录连接 页面。
- 在 Docker 中粘贴您的 Okta SAML Sign-in URL 和 x509 Certificate 值。
- 选择 Next(下一步)。
- 自选。选择要将用户配置到的默认团队,然后选择 下一步。
- 验证您的 SSO 连接详细信息,然后选择 Create Connection (创建连接)。
- 在 Azure AD 中打开您的应用。
- 在文本编辑器中打开下载的证书 (Base64)。
- 复制以下值:
- 从 Azure AD:登录 URL
- 从文本编辑器中复制证书 (Base64) 文件的内容
- 打开 Docker Hub 或 Admin Console。您的 SSO 配置页面应仍从本指南的第 1 步中打开。
- 将登录 URL 和证书 (Base64) 值粘贴到 Docker 中。
- 选择 Next(下一步)。
- 自选。选择要将用户配置到的默认团队,然后选择 下一步。
- 验证您的 SSO 连接详细信息,然后选择 Create Connection (创建连接)。
- 打开 Docker Hub 或 Admin Console。您的 SSO 配置页面应仍从本指南的第 1 步中打开。
- 将 Azure AD 中的以下值粘贴到 Docker 中:
- 客户端 ID
- 客户端密钥
- Azure AD 域
- 选择 Next(下一步)。
- 自选。选择要将用户配置到的默认团队,然后选择 下一步。
- 验证您的 SSO 连接详细信息,然后选择 Create Connection (创建连接)。
第 4 步:测试您的连接
在 Docker 中完成 SSO 连接过程后,我们建议您对其进行测试:
- 打开隐身浏览器。
- 使用您的域电子邮件地址登录到 Admin Console。
- 浏览器将重定向到 IdP 的登录页面进行身份验证。
- 通过您的域电子邮件进行身份验证,而不是使用您的 Docker ID。
您还可以通过命令行界面 (CLI) 测试 SSO 连接。如果要通过 CLI 进行测试,您的用户必须具有 personal access token (PAT)。
可选:强制实施 SSO
重要
如果未强制实施 SSO,用户可以选择使用其 Docker 用户名和密码或 SSO 登录。
强制实施 SSO 要求用户在登录 Docker 时使用 SSO。这将集中身份验证并强制执行 IdP 设置的策略。
- 登录到 Admin Console。
- 从左侧下拉菜单中选择您的组织或公司。请注意,当组织是公司的一部分时,您必须选择公司并在公司级别为组织配置域。
- 在 Security and access (安全和访问) 下,选择 SSO 和 SCIM。
- 在 SSO connections 表中,选择 Action 图标,然后选择 Enable enforcement 。强制实施 SSO 后,您的用户无法修改其电子邮件地址和密码、将用户帐户转换为组织或通过 Docker Hub 设置 2FA。如果要使用 2FA,则必须通过 IdP 启用 2FA。
- 继续按照屏幕上的说明进行操作,并验证您已完成所有任务。
- 选择 Turn on enforcement to complete(启用强制执行以完成)。
您的用户现在必须使用 SSO 登录到 Docker。
更多资源
以下视频演示了如何强制实施 SSO。