搜索

10.4. Docker registry v2 身份验证

download PDF
注意

Docker 身份验证默认为禁用。要启用 docker 身份验证,请查看 配置集

Docker Registry V2 身份验证 是一个与 OIDC 类似,用于针对 Docker registry 验证用户的协议。红帽单点登录实现此协议可让 Docker 客户端使用 Red Hat Single Sign-On 身份验证服务器与注册表进行身份验证。这个协议使用标准令牌和签名机制,但它与真正的 OIDC 实现不同。它通过对请求和响应使用非常具体的 JSON 格式,并将存储库名称和权限映射到 OAuth 范围机制。

10.4.1. Docker 身份验证流程

Docker API 文档 中介绍了身份验证流程。以下是 Red Hat Single Sign-On 身份验证服务器摘要:

  • 执行 Docker 登录
  • Docker 客户端从 Docker 注册表请求资源。如果资源受到保护,且没有在请求中,Docker 注册表服务器使用 401 HTTP 消息响应 401 HTTP 消息,其中包含一些有关所需权限的信息以及授权服务器的位置。
  • Docker 客户端根据 Docker 注册表中的 401 HTTP 消息构建身份验证请求。客户端使用本地缓存的凭据(从 docker login 命令)作为发送到 Red Hat Single Sign-On 身份验证服务器的 HTTP 基本身份验证 请求的一部分。
  • Red Hat Single Sign-On 身份验证服务器会尝试验证用户,并返回包含 OAuth 风格的 Bearer 令牌的 JSON 正文。
  • Docker 客户端从 JSON 响应中收到 bearer 令牌,并在授权标头中使用它请求受保护的资源。
  • Docker 注册表从 Red Hat Single Sign-On 服务器获取受保护资源的新请求。registry 验证令牌并授予对请求资源的访问权限(如果适用)。
注意

在成功使用 Docker 协议进行身份验证后,Red Hat Single Sign-On 不会创建浏览器 SSO 会话。浏览器 SSO 会话不使用 Docker 协议,因为它无法刷新令牌或从 Red Hat Single Sign-On 服务器获取令牌或会话状态,因此不需要浏览器 SSO 会话。如需了解更多详细信息,请参阅 临时会话 部分。

10.4.2. Red Hat Single Sign-On Docker Registry v2 Authentication Server URI 端点

Red Hat Single Sign-On 对所有 Docker auth v2 请求都有一个端点。

http(s)://authserver.host/auth/realms/{realm-name}/protocol/docker-v2

Red Hat logoGithubRedditYoutubeTwitter

学习

尝试、购买和销售

社区

关于红帽文档

通过我们的产品和服务,以及可以信赖的内容,帮助红帽用户创新并实现他们的目标。

让开源更具包容性

红帽致力于替换我们的代码、文档和 Web 属性中存在问题的语言。欲了解更多详情,请参阅红帽博客.

關於紅帽

我们提供强化的解决方案,使企业能够更轻松地跨平台和环境(从核心数据中心到网络边缘)工作。

© 2024 Red Hat, Inc.