第 2 章 OAuth 2 访问令牌


OAuth 2 访问令牌(包括 Red Hat Quay 的 "API 令牌")启用对 Red Hat Quay API 的用户身份验证访问,适用于需要用户身份验证的应用程序。这些令牌通过 OAuth 2 授权过程获得,其中 Red Hat Quay 管理员代表自己或其他用户生成令牌来访问 Red Hat Quay API 端点。OAuth 2 令牌根据为令牌定义的范围来授权对 API 端点的操作。

注意

虽然 OAuth 2 令牌根据令牌定义的范围来授权对 API 端点的操作,但访问资源本身取决于 Red Hat Quay 基于角色的访问控制(RBAC)机制。可以在资源上创建操作,例如存储库,前者为您提供了针对该命名空间的正确角色(AdminCreator)。即使 API 令牌被授予了 repo:admin 范围,也是如此。

OAuth 2 访问令牌只能通过 Red Hat Quay UI 创建;无法使用 CLI 创建 OAuth 2 访问令牌。在创建 OAuth 2 令牌时,可以为令牌拥有者选择以下选项:

  • 管理组织.选择后,允许用户管理机构,包括创建机器人、创建团队、调整团队成员资格和更改计费设置。
  • 管理存储库.选择后,提供对授予用户有权访问的所有存储库的管理员访问权限。
  • 创建存储库。选择后,允许用户在授予用户创建存储库的任何命名空间中创建存储库。
  • 查看所有可见的存储库。选择后,用户可以查看和拉取授予用户可见的所有存储库。
  • 对任何可访问的存储库进行读/写。选择后,允许用户查看、推送和拉取到授予用户具有写入访问权限的所有存储库。
  • 超级用户访问.选择后,为用户提供了管理安装的能力,包括管理用户、管理超级用户面板中的机构和其他功能。
  • 选择了用户时,允许用户管理您的帐户,包括创建机器人并将其权限授予您的存储库。
  • 读取用户信息.选择后,为用户提供读取用户信息(如用户名和电子邮件地址)的能力。

令牌经销商应注意,他们在代表用户生成令牌时授予其授权,并且在授予了管理机构、Super User Access管理用户 等权限前,用户应具有绝对信任。此外,访问令牌仅在创建时显示;它们无法通过 CLI 列出,也无法在 Red Hat Quay UI 中找到。如果访问令牌丢失或忘记,则必须创建新令牌;无法恢复令牌。

OAuth 2 访问令牌在 API 调用的 Authorization 标头中作为 Bearer 令牌传递,因此,用于向定义的 API 端点提供身份验证和授权,如镜像标签、存储库、机构等。

该 API 位于 Red Hat Quay 主机的 /api/v1 端点中。例如: https://<quay-server.example.com>/api/v1。它允许用户通过其浏览器连接到端点,通过启用 Swagger UI 来通过浏览器连接到 GETPOSTDELETEPUT Red Hat Quay 设置。API 可以被发出 API 调用的应用访问,并使用 OAuth 令牌,它将数据作为 JSON 发送和接收数据。

使用 Red Hat Quay 时,目前无法在 OAuth 2 访问令牌上轮转或设置过期时间,令牌生命周期为 10 年。当令牌被泄露时,可以通过删除创建令牌的应用程序来删除令牌。但是,这会删除在该特定应用程序内所做的所有令牌。

注意

在实践中,Red Hat Quay 管理员可以在每次要为用户创建新 OAuth 令牌时,在组织的 Applications 页面中创建新的 OAuth 应用程序。这将确保单个应用不负责所有 OAuth 令牌。因此,如果用户的令牌被破坏,管理员将删除被入侵令牌的应用。这有助于避免对令牌可能属于同一应用的其他用户造成中断。

以下小节介绍了如何生成和重新分配 OAuth 2 访问令牌。

2.1. 创建 OAuth 2 访问令牌

使用 Red Hat Quay 时,您必须创建一个 OAuth 2 访问令牌,然后才能访问机构的 API 端点。OAuth 2 访问令牌只能通过 Red Hat Quay UI 生成;CLI 无法用于生成 OAuth 2 访问令牌。

使用以下步骤创建 OAuth2 访问令牌。

先决条件

  • 您已以管理员身份登录到 Red Hat Quay。
  • 您已创建了 OAuth 2 应用。

流程

  1. 在主页上,选择一个机构。
  2. 在导航窗格中,选择 Applications
  3. 单击应用程序的名称,如 Test application
  4. 在导航窗格中,选择 Generate Token
  5. 选中以下选项的复选框:

    1. 管理组织.选择后,允许用户管理机构,包括创建机器人、创建团队、调整团队成员资格和更改计费设置。
    2. 管理存储库.选择后,提供对授予用户有权访问的所有存储库的管理员访问权限。
    3. 创建存储库。选择后,允许用户在授予用户创建存储库的任何命名空间中创建存储库。
    4. 查看所有可见的存储库。选择后,用户可以查看和拉取授予用户可见的所有存储库。
    5. 对任何可访问的存储库进行读/写。选择后,允许用户查看、推送和拉取到授予用户具有写入访问权限的所有存储库。
    6. 超级用户访问.选择后,为用户提供了管理安装的能力,包括管理用户、管理超级用户面板中的机构和其他功能。
    7. 选择了用户时,允许用户管理您的帐户,包括创建机器人并将其权限授予您的存储库。
    8. 读取用户信息.选择后,为用户提供读取用户信息(如用户名和电子邮件地址)的能力。
  6. 单击 Generate Access Token。您将被重定向到新页面。
  7. 查看您允许的权限,然后点 授权应用程序。点 Authorize Application 确认您的决定。
  8. 您将被重定向到 Access Token 页面。复制并保存访问令牌。

    重要

    这是复制并保存访问令牌的唯一机会。在离开此页面后,无法恢复它。

返回顶部
Red Hat logoGithubredditYoutubeTwitter

学习

尝试、购买和销售

社区

关于红帽文档

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

让开源更具包容性

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

關於紅帽

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

Theme

© 2025 Red Hat