创建单点登录(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、断言消费者服务 URL
- Azure OIDC: 重定向 URL
- 请保持此窗口打开,以便在本指南末尾将来自身份提供商(IdP)的连接信息粘贴到这里。
- 登录 Docker Hub。
- 选择 组织,然后从列表中选择您的组织。
- 在您的组织页面上,选择 设置,然后选择 安全。
- 在SSO连接表中,选择创建连接并为该连接提供一个名称。
- 选择一种身份验证方式:SAML 或 Azure AD (OIDC)。
- 将以下字段复制并添加到您的身份提供商(IdP)中:
- Okta SAML: 实体 ID、断言消费者服务 URL
- Azure OIDC: 重定向 URL
- 请保持此窗口打开,以便在本指南末尾将来自身份提供商(IdP)的连接信息粘贴到这里。
第二步:在您的身份提供商(IdP)中创建单点登录(SSO)连接
您的身份提供商(IdP)的用户界面可能与以下步骤略有不同。请参考您所用身份提供商的文档进行确认。
- 登录您的 Okta 账户。
- 选择 管理员 以打开 Okta 管理员门户。
- 从左侧导航栏中选择 管理。
- 选择 管理,然后选择 创建应用集成。
- 选择 SAML 2.0,然后点击 下一步。
- 请输入“Docker Hub”作为您的 应用名称。
- 可选。上传徽标。
- 选择 下一步。
- 请输入Docker中的以下值到对应的Okta字段中:
- Docker ACS URL:单点登录 URL
- Docker Entity ID:受众 URI(服务提供者实体 ID)
- 在 Okta 中配置以下设置:
- 名称 ID 格式:
EmailAddress - 应用程序用户名:
Email - 更新应用程序时间:
Create and update
- 名称 ID 格式:
- 选择 下一步。
- 选择 这是一个我们内部开发的应用程序 复选框。
- 选择 命令补全。
- 登录到您的 Azure AD 管理员门户。
- 选择 默认目录,然后单击 添加。
- 选择 企业应用程序,然后选择 创建自己的应用程序。
- 在“应用名称”中输入“Docker”,并选择非图库选项。
- 应用创建完成后,请进入单点登录,并选择SAML。
- 在基本SAML配置部分中,选择编辑。
- 将Docker中的以下值填入对应的Azure字段:
- Docker实体ID:标识符
- Docker ACS URL:响应 URL
- 保存配置。
- 从 SAML 签名证书 部分,下载您的 证书(Base64 编码)。
要创建 Azure 连接(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中创建连接并配置好您的身份提供商(IdP)后,您可以将二者进行交叉连接,以完成您的单点登录(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)连接流程后,我们建议您进行测试:
- 打开一个无痕浏览器。
- 使用您的域名邮箱地址登录管理控制台。
- 浏览器将重定向到您的身份提供商(IdP)的登录页面进行身份验证。
- 通过您的域邮箱进行身份验证,而不是使用您的 Docker ID。
您还可以通过命令行界面(CLI)测试您的单点登录(SSO)连接。如果希望通过CLI进行测试,您的用户必须拥有个人访问令牌(PAT)。
可选:强制单点登录(SSO)
重要
如果未强制启用单点登录(SSO),用户可选择使用其 Docker 用户名和密码或 SSO 进行登录。
强制启用单点登录(SSO)要求用户在登录Docker时必须使用SSO。这将集中认证流程,并强制执行身份提供商(IdP)设定的策略。
- 登录到 管理控制台。
- 从左侧下拉菜单中选择您的组织或公司。请注意,当某个组织隶属于某家公司时,您必须选择该公司,并在公司层面为该组织配置域名。
- 在“安全与访问”下,选择单点登录(SSO)和SCIM。
- 在单点登录(SSO)连接表格中,选择操作图标,然后选择启用强制执行。启用SSO强制执行后,您的用户将无法修改其电子邮件地址和密码、将用户账户转换为组织账户,或通过Docker Hub设置双因素认证(2FA)。如果您需要使用2FA,则必须通过您的身份提供商(IdP)启用2FA。
- 继续按照屏幕上的指示操作,并确认您已完成所有任务。
- 选择 启用强制执行 以完成操作。
您的用户现在必须通过单点登录(SSO)登录 Docker。
更多资源
以下视频演示了如何强制执行单点登录(SSO)。