使用 Trusted Publishing 提升 npm 包发布安全性

npm 发布 token CI TrustedPublishing
发布于 2026-06-11
104

我们非常重视原创文章,为尊重知识产权并避免潜在的版权问题,我们在此提供文章的摘要供您初步了解。如果您想要查阅更为详尽的内容,访问作者的公众号页面获取完整文章。

扫码阅读
手机扫码阅读
**文章主旨:** 本文介绍了 npm 推出的 Trusted Publishing(可信发布)机制,通过 OIDC 实现从 CI/CD 工作流安全发布 npm 包,消除长期 token 泄露风险,并提供了详细的设置步骤。 **关键要点:** 1. Trusted Publishing 基于 OpenID Connect(OIDC),无需在 CI 中存储长期 npm token,每次发布使用短期、工作流特定的凭证。 2. 该机制能有效降低 token 泄露带来的供应链攻击风险,并自动附加来源证明(provenance)。 3. 设置需在 npm 包设置页面配置可信发布者(如 GitHub Actions),并在 CI 工作流中添加 `id-token: write` 权限。 4. 当前要求 npm CLI ≥ 11.5.1 和 Node ≥ 22.14.0。 5. 建议所有开源项目逐步迁移到此方案。 **内容结构:** 1. **引言**:提出传统 npm 发布方式依赖长期 token 的安全隐患,引出 npm 于 2025 年 7 月推出的 Trusted Publishing 机制。 2. **什么是 Trusted Publishing**:基于 OIDC 的可信发布功能,无长期 token、消除令牌安全风险、短期凭证自动过期、绑定 CI 身份、降低泄露风险、自动获取来源证明。 3. **传统发布方式的问题**:依赖长期 token 存储于 GitHub Secrets,token 泄露可导致恶意发布;即使 npm 限制 token 有效期至 90 天,仍需频繁轮换。 4. **Trusted Publishing 的工作原理**:GitHub Actions 在运行时向 npm 发起 OIDC 身份请求,npm 验证请求来源是否匹配已配置的可信仓库,匹配后签发短期访问令牌,CI 使用该令牌执行 `npm publish`。 5. **设置 Trusted Publishing**: - npm 侧:进入包设置页面的 Trusted Publisher,选择 GitHub Actions,填写用户/组织、仓库、工作流文件名。 - GitHub Actions 配置:修改工作流 YAML,添加 `permissions: id-token: write`(必须),移除原有的 npm token 设置。 - 发布成功后邮件通知会包含 CI 来源信息。 6. **注意事项**:Trusted Publishing 需要 npm CLI 11.5.1+ 和 Node 22.14.0+。 7. **结论**:Trusted Publishing 是 npm 供应链安全的重要升级,建议所有开源项目逐步迁移。 **文章总结:** 本文系统性地阐述了 npm Trusted Publishing 机制的原理、优势与配置方法,强烈建议开发者采用该方案以提升 npm 发布流程的安全性。

鲁飞

鲁飞(沈唁)的个人公众号,不定时分享和PHP相关的技术资源、开源项目、技术总结等内容。

41 篇文章
浏览 68.6K

还在用多套工具管项目?

一个平台搞定产品、项目、质量与效能,告别整合之苦,实现全流程闭环。

加入社区微信群
与行业大咖零距离交流学习
PMO实践白皮书
白皮书上线