一句话看懂:npm 正式支持每个包配置多个受信任发布(OIDC)设置,并将恶意软件扫描与人工审批流程衔接,让开源包的发布安全性和权限管理更精细。
事件核心:发生了什么
GitHub Changelog 于 2026 年 9 月 3 日宣布,npm 发布侧三项更新正式可用。最关键的变化是:一个包现在可以拥有多个受信任发布(OIDC)配置,不再受限于单一配置。维护者可为稳定版、预发布版或暂存(staging)版分别设置独立的仓库、工作流和环境条件,各配置之间彼此独立且可叠加。此前,OIDC 无法覆盖的场景只能依赖临时工作流或常驻令牌来兜底。
同时,npm 将恶意软件扫描嵌入暂存队列流程:扫描未完成前,审批按钮保持禁用,扫描结束后才可手动批准,页面每分钟自动刷新扫描状态。npmjs.com 的版本标签页也向维护者展示每个版本的详细暂存历史,包括已批准、已拒绝或仍在暂存中。
为什么重要
这三个变化把 npm 的供应链安全从“入口控制”推进到“发布流程治理”。多配置支持意味着维护者不再需要为不同发布渠道妥协安全策略,可以用独立的 OIDC 身份分别管理稳定版和预发布版,降低因工作流绕过而产生的长期令牌泄露风险。默认情况下,每个受信任发布配置只能暂存包,直接发布需逐项显式开启,这实际上默认采用了“人工审批 + 不可直接推送”的更保守路径。
将恶意软件扫描设为人工批准的前提条件,则修复了此前“扫描与审批并行”可能导致的空窗期——被感染的包不会再在安全检测完成前就被批准上架。对于依赖 npm 生态的下游企业来说,这意味着引入开源依赖时的供应链攻击面进一步收窄。
对用户/开发者/创作者的影响
对 npm 包维护者而言,多配置支持直接减少了“一把令牌走天下”的场景,尤其适合同时维护稳定版、beta 版和内部暂存版的大型项目。建议尽快在包设置页中拆分各发布流程的 OIDC 配置,并将直接发布权限收回,统一走暂存 + 人工审批。值得注意的是,官方提示配置评估顺序不保证,因此不应编写依赖“哪条配置先匹配”的逻辑。
AI 工具推荐
想把多个 AI 模型放在一个入口?
GamsGo AI 集成 ChatGPT、DeepSeek、Gemini、Claude、Midjourney、Veo 等常用模型,适合写作、绘图、视频和日常 AI 工作流。
推广链接:通过此链接购买,我可能获得佣金,不影响你的价格。
对普通开发者和使用 npm 的开源项目消费者,暂存历史和扫描门槛提供了更透明的版本状态可见性。但公众目前尚不能查看这些暂存历史细节,它仅对包维护者可见。
值得关注的后续
首先,关注 GitHub 社区讨论中维护者对新配置模型的实际反馈——尤其是多配置场景下权限审计是否足够直观。其次,观察该能力是否会向 npm 企业版或 GitHub Packages 延伸。最后,留意恶意软件扫描覆盖范围是否会随时间扩大,以及扫描延迟是否会影响高频发布团队的发布节奏。


