Aller au contenu

Le média des artisans du web vendredi 2 octobre 2026

Sécurité

npm ouvre la gestion des dist-tags au trusted publishing sans jeton

npm permet désormais de gérer les dist-tags comme « latest » ou « next » via les identifiants OIDC de courte durée du trusted publishing, sans jeton d'accès permanent. L'option comble une dernière brèche pour les mainteneurs déjà passés à un flux…

npm vient d’ajouter une permission optionnelle au trusted publishing : la possibilité de déplacer un dist-tag comme latest ou next à l’aide des identifiants OIDC de courte durée, sans recourir à un jeton d’accès classique. L’annonce, publiée le 30 septembre 2026 sur le blog de GitHub, referme une dernière brèche pour les projets déjà passés à un flux de publication sans jeton permanent.

Le trou qui subsistait dans le trusted publishing

Le trusted publishing permet depuis plusieurs mois de publier un paquet npm depuis une CI, comme GitHub Actions, en s’appuyant sur des identifiants OIDC émis à la volée plutôt que sur un jeton stocké en secret. Mais la promotion d’une version déjà publiée vers un dist-tag, une opération courante pour faire passer une version de beta à latest par exemple, restait hors du périmètre de ce mécanisme. Les mainteneurs qui avaient éliminé leurs jetons longue durée pour la publication devaient donc en conserver un, dédié à cette seule tâche.

Ce que permet la nouvelle permission

Chaque configuration de trusted publishing npm embarque désormais une case « Allow npm dist-tag », désactivée par défaut. Une fois activée pour un paquet donné, les identifiants OIDC émis lors d’un déploiement peuvent aussi bien publier une version que modifier ses dist-tags, indépendamment l’une de l’autre : une configuration limitée à la mise en préproduction peut par exemple recevoir uniquement les droits de gestion des dist-tags.

Comment l’activer

L’activation se fait dans la configuration du trusted publisher sur npmjs.com, puis se reflète dans le workflow CI, qui n’a besoin d’aucun jeton supplémentaire :

permissions:
  id-token: write
  contents: read

jobs:
  publish:
    runs-on: ubuntu-latest
    steps:
      - uses: actions/checkout@v4
      - uses: actions/setup-node@v4
        with:
          node-version: 22
          registry-url: https://registry.npmjs.org
      - run: npm publish --provenance
      - run: npm dist-tag add [email protected] latest
OpérationAvantAprès
Publication d’une versionOIDC (trusted publishing)OIDC (trusted publishing)
Promotion vers un dist-tagJeton d’accès classiqueOIDC, sur autorisation explicite
Jeton longue durée à stockerOui, pour les dist-tagsAucun

Portée et limites

La permission reste indépendante du droit de publication direct : une configuration réservée à la préproduction peut recevoir uniquement la gestion des dist-tags, sans jamais pouvoir publier de nouvelle version. Les flux fondés sur des jetons classiques continuent par ailleurs de fonctionner sans changement, pour les équipes qui n’ont pas encore migré. Un choix de compatibilité raisonnable, mais qui laisse ce comblement de brèche entièrement à la charge des mainteneurs : rien ne les pousse à l’activer.

Chaque configuration de trusted publishing npm embarque désormais une permission « Allow npm dist-tag », désactivée par défaut, qui couvre les opérations de promotion de version jusque-là réservées aux jetons classiques.

L’option est désactivée par défaut : sans action explicite dans la configuration du trusted publisher, un projet continue d’avoir besoin d’un jeton classique pour déplacer ses dist-tags, même après avoir migré sa publication vers OIDC.

Ce que cela change pour les mainteneurs

Pour les mainteneurs de paquets largement utilisés, la surface d’attaque se réduit encore un peu : un jeton de publication volé ou mal révoqué est un scénario classique de compromission de la chaîne d’approvisionnement, documenté à plusieurs reprises ces dernières années sur l’écosystème JavaScript. Les équipes qui suivent l’évolution des gestionnaires de paquets JavaScript retrouveront ici un principe déjà appliqué côté hébergement web, où réduire le nombre de secrets stockés reste l’un des leviers de durcissement les plus simples à mettre en œuvre.

Ce qu’il faut retenir

npm étend son trusted publishing à la gestion des dist-tags via OIDC, une option à activer manuellement qui permet de supprimer le dernier jeton longue durée nécessaire dans un flux de publication autrement sans jeton.

C’est le genre d’amélioration qui ne fera la une d’aucun flux d’actualité généraliste, mais qui compte plus, sur la durée, que beaucoup d’annonces plus spectaculaires. Un jeton de publication qui traîne dans les secrets d’un dépôt est un classique des audits de sécurité, et le fait qu’il faille encore l’activer à la main plutôt que d’en faire le comportement par défaut montre bien que la sécurité de la chaîne d’approvisionnement progresse à la vitesse de l’adoption, pas à celle de la technique disponible. — Simon Janvier

Pour aller plus loin : l’annonce officielle sur le blog de GitHub, « Opt-in dist-tag permissions for npm trusted publishing ».

Partager LinkedIn Bluesky Hacker News E-mail

À lire aussi