创建 SSO 连接
目录
创建单点登录 (SSO) 连接需要首先在 Docker 中设置连接,然后在您的身份提供商 (IdP) 中设置连接。本指南提供了在 Docker 和您的 IdP 中设置 SSO 连接的步骤。
提示
本指南需要在 Docker 和您的 IdP 中复制和粘贴值。为了确保无缝的连接过程,请在一个会话中完成本指南中的所有步骤,并为 Docker 和您的 IdP 保持单独的浏览器窗口打开。
先决条件
开始之前,请确保您已完成以下操作:
- 您的域已验证
- 您已在 IdP 中设置帐户
- 您已完成配置单点登录指南中的步骤
第一步:在 Docker 中创建 SSO 连接
注意
在 Docker 中创建 SSO 连接之前,您必须验证至少一个域。
- 登录管理员控制台。
- 从左侧下拉菜单中选择您的组织或公司。请注意,当组织属于公司时,您必须选择公司并在公司级别为组织配置域。
- 在“安全和访问”下,选择SSO 和 SCIM。
- 选择创建连接并为连接提供名称。
- 选择一种身份验证方法,SAML 或Azure AD (OIDC)。
- 复制以下字段以添加到您的 IdP
- Okta SAML:实体 ID、ACS URL
- Azure OIDC:重定向 URL
- 请保持此窗口打开,以便您可以在本指南末尾将连接信息从您的 IdP 粘贴到这里。
- 登录 Docker Hub。
- 选择组织,然后从列表中选择您的组织。
- 在您的组织页面上,选择设置,然后选择安全。
- 在 SSO 连接表中,选择创建连接并为连接提供名称。
- 选择一种身份验证方法,SAML 或Azure AD (OIDC)。
- 复制以下字段以添加到您的 IdP
- Okta SAML:实体 ID、ACS URL
- Azure OIDC:重定向 URL
- 请保持此窗口打开,以便您可以在本指南末尾将连接信息从您的 IdP 粘贴到这里。
第二步:在您的 IdP 中创建 SSO 连接
您的 IdP 的用户界面可能与以下步骤略有不同。请参考您的 IdP 的文档进行验证。
- 登录您的 Okta 帐户。
- 选择管理员以打开 Okta 管理门户。
- 从左侧导航栏中,选择管理。
- 选择管理,然后选择创建应用程序集成。
- 选择**SAML 2.0**,然后单击**下一步**。
- 将“Docker Hub”作为您的**应用名称**输入。
- 可选。上传徽标。
- 选择**下一步**。
- 将Docker中的以下值输入到相应的Okta字段中
- Docker ACS URL:**单点登录URL**
- Docker 实体 ID:**受众 URI (SP 实体 ID)**
- 在Okta中配置以下设置
- 名称 ID 格式:
EmailAddress
- 应用程序用户名:
Email
- 更新应用程序:
创建和更新
- 名称 ID 格式:
- 选择**下一步**。
- 选中**这是一个我们创建的内部应用**复选框。
- 选择**完成**。
- 登录您的 Azure AD 管理门户。
- 选择**默认目录**,然后选择**添加**。
- 选择**企业应用程序**,然后选择**创建您自己的应用程序**。
- 输入应用程序名称“Docker”,并选择**非库**选项。
- 创建应用程序后,转到**单点登录**并选择**SAML**。
- 在**基本 SAML 配置**部分中选择**编辑**。
- 将Docker中的以下值输入到相应的Azure字段中
- Docker 实体 ID:**标识符**
- Docker ACS URL:**回复 URL**
- 保存配置。
- 从**SAML 签名证书**部分下载您的**证书 (Base64)**。
要创建 Azure Connect (OIDC) 连接,您必须创建应用注册、客户端密钥,并为 Docker 配置 API 权限
创建应用注册
- 登录您的 Azure AD 管理门户。
- 选择**应用注册**,然后选择**新建注册**。
- 输入应用程序名称“Docker Hub SSO”或类似名称。
- 在**支持的帐户类型**下,指定谁可以使用此应用程序或访问此应用程序。
- 在**重定向 URI**部分,从下拉菜单中选择**Web**,并将Docker控制台中的**重定向 URI**值粘贴到此字段。
- 选择**注册**以注册应用程序。
- 从应用程序的概述页面复制**客户端 ID**。您需要此信息才能继续在 Docker 中配置 SSO。
创建客户端密钥
- 在 Azure AD 中打开您的应用程序,然后选择**证书和密钥**。
- 选择**+ 新建客户端密钥**。
- 指定密钥的描述并设置密钥的使用期限。
- 选择**添加**继续。
- 复制密钥的**值**字段。您需要此信息才能继续在 Docker 中配置 SSO。
配置 API 权限
- 在 Azure AD 中打开您的应用程序,然后导航到您的应用程序设置。
- 选择**API 权限**,然后选择**为 [您的租户名称] 授予管理员权限**。
- 选择**是**进行确认。
- 确认后,选择**添加权限**,然后选择**委派权限**。
- 搜索
User.Read
并选择此选项。 - 选择**添加权限**进行确认。
- 通过检查**状态**列,验证是否已为每个权限授予管理员权限。
第三步:连接 Docker 和您的 IdP
在Docker和您的身份提供商中创建连接后,您可以将它们交叉连接以完成您的SSO连接
- 打开您在Okta中创建的应用程序,然后选择**查看SAML设置说明**。
- 从Okta SAML设置说明页面复制以下值
- SAML登录URL
- x509证书
- 打开Docker Hub或管理控制台。您的SSO配置页面应仍从本指南的第一步打开。
- 选择**下一步**以打开**更新单点登录连接**页面。
- 将Okta的**SAML登录URL**和**x509证书**值粘贴到Docker中。
- 选择**下一步**。
- 可选。选择一个默认团队以向其配置用户,然后选择**下一步**。
- 验证您的SSO连接详细信息,然后选择**创建连接**。
- 在 Azure AD 中打开您的应用程序。
- 在文本编辑器中打开您下载的**证书 (Base64)**。
- 复制以下值
- 来自 Azure AD:**登录 URL**
- 从文本编辑器中复制您的**证书 (Base64)**文件内容
- 打开Docker Hub或管理控制台。您的SSO配置页面应仍从本指南的第一步打开。
- 将您的**登录 URL**和**证书 (Base64)**值粘贴到 Docker 中。
- 选择**下一步**。
- 可选。选择一个默认团队以向其配置用户,然后选择**下一步**。
- 验证您的SSO连接详细信息,然后选择**创建连接**。
- 打开Docker Hub或管理控制台。您的SSO配置页面应仍从本指南的第一步打开。
- 将 Azure AD 中的以下值粘贴到 Docker 中
- 客户端 ID
- 客户端密钥
- Azure AD 域名
- 选择**下一步**。
- 可选。选择一个默认团队以向其配置用户,然后选择**下一步**。
- 验证您的SSO连接详细信息,然后选择**创建连接**。
第四步:测试您的连接
完成Docker中的SSO连接过程后,建议您对其进行测试
- 打开一个隐身浏览器。
- 使用您的**域名电子邮件地址**登录管理控制台。
- 浏览器将重定向到您的身份提供商的登录页面以进行身份验证。
- 通过您的域名电子邮件进行身份验证,而不是使用您的 Docker ID。
您也可以通过命令行界面 (CLI) 测试您的 SSO 连接。如果您想通过 CLI 进行测试,您的用户必须拥有个人访问令牌 (PAT)。
可选:强制执行 SSO
重要
如果未强制执行 SSO,用户可以选择使用其 Docker 用户名和密码或 SSO 登录。
强制执行 SSO 要求用户在登录 Docker 时使用 SSO。这可以集中身份验证并强制执行身份提供商设置的策略。
- 登录管理员控制台。
- 从左侧下拉菜单中选择您的组织或公司。请注意,当组织属于公司时,您必须选择公司并在公司级别为组织配置域。
- 在“安全和访问”下,选择SSO 和 SCIM。
- 在 SSO 连接表中,选择**操作**图标,然后选择**启用强制执行**。强制执行 SSO 后,您的用户将无法修改其电子邮件地址和密码、将用户帐户转换为组织帐户或通过 Docker Hub 设置 2FA。如果您想使用 2FA,则必须通过您的身份提供商启用 2FA。
- 继续执行屏幕上的说明,并验证您已完成所有任务。
- 选择**启用强制执行**以完成。
您的用户现在必须使用 SSO 登录 Docker。
更多资源
以下视频演示如何强制执行 SSO。