创建 SSO 连接
创建单点登录 (SSO) 连接需要先在 Docker 中设置连接,然后在身份提供者 (IdP) 中设置连接。本指南提供了在 Docker 和 IdP 中设置 SSO 连接的步骤。
提示
本指南需要在 Docker 和 IdP 中复制和粘贴值。为确保无缝连接过程,请一次性完成本指南中的所有步骤,并为 Docker 和 IdP 打开单独的浏览器窗口。
前提条件
开始之前,请确保您已完成以下事项
- 您的域名已验证
- 您已在 IdP 中设置了账户
- 您已完成配置单点登录指南中的步骤
第一步:在 Docker 中创建 SSO 连接
注意
在 Docker 中创建 SSO 连接之前,您必须验证至少一个域名。
- 登录 Admin Console。
- 在选择个人资料页面选择您的组织或公司。请注意,当组织隶属于公司时,您必须选择公司并在公司级别配置组织的域名。
- 在“安全和访问”下,选择 SSO 和 SCIM。
- 选择 创建连接 并为连接命名。
- 选择认证方法,SAML 或 Azure AD (OIDC)。
- 复制以下字段添加到您的 IdP:
- Okta SAML:实体 ID,ACS URL
- Azure OIDC:重定向 URL
- 保持此窗口打开,以便您在本指南末尾将 IdP 中的连接信息粘贴到此处。
重要提示
组织管理正在迁移到 Admin Console。
在 Docker Admin Console 中管理成员、团队、设置和活动日志。Docker Hub 中对这些功能的访问权限即将终止。请前往Admin Console。
- 登录 Docker Hub。
- 选择 My Hub,然后从列表中选择您的组织。
- 在组织页面上,选择 Settings,然后选择 Security。
- 在 SSO 连接表中,选择 创建连接 并为连接命名。
- 选择认证方法,SAML 或 Azure AD (OIDC)。
- 复制以下字段添加到您的 IdP:
- Okta SAML:实体 ID,ACS URL
- Azure OIDC:重定向 URL
- 保持此窗口打开,以便您在本指南末尾将 IdP 中的连接信息粘贴到此处。
第二步:在 IdP 中创建 SSO 连接
您的 IdP 用户界面可能与以下步骤略有不同。请参阅您的 IdP 文档进行确认。
- 登录您的 Okta 账户。
- 选择 Admin 打开 Okta 管理门户。
- 在左侧导航菜单中,选择 Administration。
- 选择 Administration,然后选择 Create App Integration。
- 选择 SAML 2.0,然后选择 Next。
- 输入 "Docker Hub" 作为您的 App Name。
- 可选。上传徽标。
- 选择 Next。
- 将 Docker 中的以下值输入到 Okta 中的对应字段:
- Docker ACS URL:Single Sign On URL
- Docker 实体 ID:Audience URI (SP Entity ID)
- 在 Okta 中配置以下设置:
- Name ID format:
EmailAddress
- Application username:
Email
- Update application on:
Create and update
- Name ID format:
- 可选。添加 SAML 属性。有关 SSO 属性表,请参阅SSO attributes。
- 选择 Next。
- 选中 This is an internal app that we have created 复选框。
- 选择 Finish。
- 登录您的 Azure AD 管理门户。
- 选择 Default Directory,然后选择 Add。
- 选择 Enterprise Application,然后选择 Create your own application。
- 为应用程序名称输入 "Docker",并选择 non-gallery 选项。
- 创建应用程序后,转到 Single Sign-On 并选择 SAML。
- 在 Basic SAML configuration 部分选择 Edit。
- 将 Docker 中的以下值输入到 Azure 中的对应字段:
- Docker 实体 ID:Identifier
- Docker ACS URL:Reply URL
- 可选。添加 SAML 属性。有关 SSO 属性表,请参阅SSO attributes。
- 保存配置。
- 在 SAML Signing Certificate 部分,下载您的 Certificate (Base64)。
要创建 Azure Connect (OIDC) 连接,您必须为 Docker 创建应用注册、客户端密钥并配置 API 权限:
创建应用注册
- 登录您的 Azure AD 管理门户。
- 选择 App Registration,然后选择 New Registration。
- 输入 "Docker Hub SSO" 或类似的应用程序名称。
- 在支持的账户类型下,指定谁可以使用此应用程序或访问该应用。
- 在 Redirect URI 部分,从下拉菜单中选择 Web,并将 Docker 控制台中的 Redirect URI 值粘贴到此字段。
- 选择 Register 注册应用。
- 复制应用概览页面上的 Client ID。您需要此信息来继续在 Docker 中配置 SSO。
创建客户端密钥
- 在 Azure AD 中打开您的应用,然后选择 Certificates & secrets。
- 选择 + New client secret。
- 指定密钥的描述,并设置密钥的使用期限。
- 选择 Add 继续。
- 复制密钥的 Value 字段。您需要此信息来继续在 Docker 中配置 SSO。
配置 API 权限
- 在 Azure AD 中打开您的应用并导航到应用设置。
- 选择 API permission,然后选择 Grant admin consent for [您的租户名称]。
- 选择 Yes 确认。
- 确认后,选择 Add a permission,然后选择 Delegated permissions。
- 搜索
User.Read
并选择此选项。 - 选择 Add permissions 确认。
- 通过检查 Status 列,验证是否已为每个权限授予管理员同意。
第三步:连接 Docker 和 IdP
在 Docker 和 IdP 中创建连接后,您可以交叉连接它们来完成 SSO 连接:
打开您在 Okta 中创建的应用,然后选择 View SAML setup instructions。
从 Okta SAML 设置说明页面复制以下值:
SAML Sign-in URL
x509 证书
重要提示
您必须复制整个 x509 证书内容,包括
----BEGIN CERTIFICATE----
和----END CERTIFICATE----
行。
打开 Docker Hub 或 Admin Console。您的 SSO 配置页面应仍处于打开状态(从本指南的第一步)。
选择 Next 打开 更新单点登录连接 页面。
将您的 Okta SAML Sign-in URL 和 x509 证书值粘贴到 Docker 中。
选择 Next。
可选。选择一个默认团队用于预配用户,然后选择 Next。
验证您的 SSO 连接详情,然后选择 Create Connection。
在 Azure AD 中打开您的应用。
在文本编辑器中打开您下载的 Certificate (Base64)。
复制以下值:
从 Azure AD:Login URL
从文本编辑器中复制 Certificate (Base64) 文件内容:
重要提示
您必须复制整个 Certificate (base64) 内容,包括
----BEGIN CERTIFICATE----
和----END CERTIFICATE----
行。
打开 Docker Hub 或 Admin Console。您的 SSO 配置页面应仍处于打开状态(从本指南的第一步)。
将您的 Login URL 和 Certificate (Base64) 值粘贴到 Docker 中。
选择 Next。
可选。选择一个默认团队用于预配用户,然后选择 Next。
验证您的 SSO 连接详情,然后选择 Create Connection。
- 打开 Docker Hub 或 Admin Console。您的 SSO 配置页面应仍处于打开状态(从本指南的第一步)。
- 将 Azure AD 中的以下值粘贴到 Docker 中:
- Client ID
- Client Secret
- Azure AD 域名
- 选择 Next。
- 可选。选择一个默认团队用于预配用户,然后选择 Next。
- 验证您的 SSO 连接详情,然后选择 Create Connection。
第四步:测试连接
在 Docker 中完成 SSO 连接过程后,我们建议测试它:
- 打开隐身浏览器。
- 使用您的域名电子邮件地址登录 Admin Console。
- 浏览器将重定向到您 IdP 的登录页面进行认证。
- 使用您的域名电子邮件进行认证,而不是使用您的 Docker ID。
您还可以通过命令行界面 (CLI) 测试 SSO 连接。如果您想通过 CLI 测试,您的用户必须拥有个人访问令牌 (PAT)。
可选:强制 SSO
重要提示
如果未强制 SSO,用户可以选择使用 Docker 用户名和密码或 SSO 登录。
强制 SSO 要求用户在登录 Docker 时使用 SSO。这集中了认证并强制执行 IdP 设置的策略。
- 登录 Admin Console。
- 在选择个人资料页面选择您的组织或公司。请注意,当组织隶属于公司时,您必须选择公司并在公司级别配置组织的域名。
- 在“安全和访问”下,选择 SSO 和 SCIM。
- 在 SSO 连接表中,选择操作图标,然后选择 启用强制。强制 SSO 后,您的用户将无法更改电子邮件地址和密码、将用户账户转换为组织,或通过 Docker Hub 设置 2FA。如果您想使用 2FA,必须通过 IdP 启用 2FA。
- 继续按照屏幕上的说明操作,并确认您已完成所有任务。
- 选择 开启强制 完成。
您的用户现在必须使用 SSO 登录 Docker。
注意
强制 SSO 后,用户无法使用密码访问 Docker CLI。用户必须使用个人访问令牌 (PAT) 进行认证以访问 Docker CLI。
更多资源
以下视频演示了如何强制 SSO。