RubyGems 导航菜单
指南

受信任的发布是指使用 OpenID Connect (OIDC) 在受信任的第三方服务和 RubyGems.org 之间交换短期身份令牌。这允许在自动化环境(如 CI)中获取短期 API 令牌,而无需存储长期 API 令牌或用户名/密码凭据。

有关快速入门指南,请参阅

工作原理

受信任的发布是一种机制,用于将 gem 上传到 RubyGems.org,而无需使用长期秘密凭据。

您无需成为 OIDC 专家即可使用受信任的发布,但了解其工作原理的基础知识会有所帮助。

  1. 某些平台(如 GitHub Actions)是 OIDC *身份提供者*,这意味着它们可以颁发短期身份令牌,第三方可以 **强烈** 验证这些令牌来自 CI 服务(以及触发构建的存储库、工作流和提交)。
  2. RubyGems.org 上的宝石可以配置为信任来自特定提供商的特定配置,从而使该配置成为该宝石的受信任发布者。
  3. 发布自动化(如 GitHub Actions)可以将身份令牌交换为来自 RubyGems.org 的短期 API 令牌,前提是该令牌与 RubyGems.org 上配置的任何受信任发布者匹配。
  4. API 令牌只能用于推送到配置为信任发布者的宝石,并且只能使用很短的时间。

与传统的身份验证机制相比,这种机制具有显著的安全性和可用性优势。

  • 可用性:受信任的发布不需要手动创建和存储来自 RubyGems.org 的 API 令牌。唯一的手动步骤是在 RubyGems.org 上配置受信任的发布者。
  • 安全性:RubyGems.org 的普通 API 令牌是长期有效的,这意味着获得 API 令牌的攻击者可以无限期地使用它。受信任的发布令牌是短期有效的,这意味着它们只能使用很短的时间。

进一步阅读

我们强烈建议查看 PyPI 上我们朋友撰写的优秀文档,以获取有关受信任发布工作原理的更深入信息。