Skip to main content

Vue d’ensemble

  • Fonction : Corgea se connecte à votre registre de paquets privé afin d’analyser les paquets internes dont dépendent vos projets, ainsi que tous les paquets que ces paquets internes entraînent.
  • Public visé : les équipes dont les applications dépendent de paquets publiés en interne — bibliothèques partagées, SDK de plateforme, frameworks maison — hébergés sur un registre privé plutôt que sur un registre public comme Maven Central, PyPI ou nuget.org.

Pourquoi c’est nécessaire

Corgea analyse chaque dépendance en la recherchant dans le registre dont elle provient. Les paquets publics sont accessibles à tous et fonctionnent donc immédiatement. Ce n’est pas le cas des paquets internes : sans identifiants, Corgea ne peut pas les ouvrir, et tout ce qui se trouve derrière reste invisible. Sans registre connecté, vous constaterez généralement :
  • Un avertissement Dependency Analysis sur le fichier concerné, dans l’onglet « Errors » de l’analyse.
  • Des paquets internes affichés sans sous-dépendances, car Corgea n’a pas pu regarder à l’intérieur.
  • Des vulnérabilités manquantes, car tout ce qui n’est accessible que via un paquet interne n’est jamais analysé.
Une fois connecté, vos paquets internes sont traités comme n’importe quelle autre dépendance : ils apparaissent dans l’arbre de dépendances avec tout ce qu’ils entraînent, et les vulnérabilités qu’ils contiennent sont signalées, priorisées et corrigées comme d’habitude.

Disponibilité

Les registres de paquets privés sont proposés aux clients enterprise disposant d’un tenant dédié. La fonctionnalité est activée par organisation et désactivée par défaut : contactez support@corgea.com pour l’activer sur votre compte.
Tant qu’elle n’est pas activée pour votre organisation, la fonctionnalité est masquée : aucune entrée Package Registries sur la page Integrations et aucun panneau de registres dans les paramètres du projet.

Types de paquets pris en charge

Registres compatibles

Corgea se connecte via le protocole standard de chaque type de paquet : il n’est donc lié à aucun éditeur. Tout registre qui distribue les paquets comme le client standard l’attend et accepte un nom d’utilisateur et un jeton fonctionnera, notamment :
  • Sonatype Nexus Repository
  • Azure Artifacts
  • GitHub Packages
  • Google Artifact Registry
  • MyGet
  • ProGet
  • Serveurs de registre auto-hébergés

Avant de commencer

Il vous faut :
  1. Un registre accessible depuis Corgea. Corgea se connecte à votre registre via Internet. Un registre accessible uniquement depuis votre VPN ou votre réseau privé, ou situé derrière une liste d’adresses IP autorisées, ne fonctionnera pas tant que vous n’autorisez pas l’accès.
  2. Un jeton avec accès en lecture. Corgea télécharge seulement les paquets et lit leurs informations de dépendances. Il ne publie jamais.
  3. Un jeton qui n’expire pas rapidement. Corgea conserve le jeton fourni et le réutilise à chaque analyse.
Certains registres émettent des jetons de courte durée qui expirent après quelques heures. Ils fonctionnent pour la première analyse puis échouent. Utilisez plutôt un jeton de longue durée, un compte de service ou une clé d’API.
Créez un compte de service dédié en lecture seule pour Corgea plutôt qu’un jeton personnel. L’accès reste limité au strict nécessaire et la connexion continue de fonctionner lorsqu’une personne quitte l’équipe.

Configurer un registre

Étape 1 — Récupérer les informations de votre registre

Dans votre registre, créez un jeton (ou un compte de service) avec un accès en lecture aux dépôts que Corgea doit utiliser. Notez le nom d’utilisateur associé et l’URL du dépôt.
Utilisez l’URL du dépôt qui distribue vos artefacts internes, par exemple :

Étape 2 — Ajouter le registre dans Corgea

Allez dans Integrations → Package Registries et cliquez sur Manage. Section Package Registries sur la page Integrations
L’autorisation Manage Integrations est nécessaire pour ajouter, modifier ou supprimer un registre. Voir Autorisations.
Cliquez sur Add Registry. Liste Package Registries affichant les registres configurés Remplissez le formulaire : Formulaire Add Package Registry en mode Structured form
Chaque entrée de registre couvre un seul type de paquet. Si votre registre héberge des dépôts Maven, PyPI et NuGet, ajoutez trois entrées — une par type — chacune avec son URL correspondante.

Étape 3 — Choisir les projets concernés

Laissez Apply to all projects activé pour que tous les projets de votre organisation puissent utiliser ce registre, ou désactivez-le et sélectionnez des projets précis. Voir Choisir les projets qui utilisent un registre.

Étape 4 — Relancer une analyse et vérifier les résultats

Lancez une nouvelle analyse sur un projet qui dépend d’un paquet interne, puis vérifiez que :
  • L’avertissement Dependency Analysis pour ce fichier a disparu de l’onglet « Errors ».
  • Votre paquet interne affiche désormais des sous-dépendances et peut être déplié dans l’arbre de dépendances.
  • Les vulnérabilités présentes uniquement dans des paquets internes apparaissent.
Connecter un registre ne modifie pas les résultats des analyses précédentes. Lancez une nouvelle analyse pour bénéficier de la couverture améliorée.
Si Corgea ne parvient pas à joindre votre registre pendant une analyse, celle-ci se termine tout de même avec les paquets publics et affiche un avertissement sur le fichier concerné. Un problème de registre ne fait jamais échouer votre analyse ni ne bloque votre pipeline — mais les résultats resteront sans vos paquets internes jusqu’à résolution.

Méthodes de configuration

Structured form (recommandé)

Saisissez votre URL, votre nom d’utilisateur et votre jeton : Corgea s’occupe du reste. Utilisez cette option sauf raison particulière.

Paste config file (avancé)

Si vous maintenez déjà un fichier de configuration de gestionnaire de paquets pour votre registre, vous pouvez le coller à la place. Choisissez cette option lorsque votre registre nécessite des réglages que le formulaire ne couvre pas — mirrors, proxies, ou règles définissant quels paquets proviennent de quelle source. Formulaire Add Package Registry en mode Paste config file Collez le fichier de configuration que votre gestionnaire de paquets utilise déjà pour ce registre : un settings.xml Maven, un fichier de configuration pip, ou un NuGet.Config.
Le fichier doit contenir des identifiants fonctionnels. Si votre fichier utilise un mot de passe chiffré ou fictif, remplacez-le par un vrai jeton avant de coller — Corgea ne peut pas déchiffrer le format de mot de passe propre à votre registre.
Si vous changez la méthode de configuration d’un registre existant, saisissez à nouveau les identifiants pour la nouvelle méthode. Corgea ne conserve que les identifiants de la méthode utilisée.

Choisir les projets qui utilisent un registre

Les registres sont configurés une fois pour votre organisation, puis appliqués aux projets de deux manières :
  • Apply to all projects (par défaut) : tous les projets de votre organisation peuvent utiliser le registre. Idéal pour un registre unique à l’échelle de l’entreprise.
  • Projets spécifiques : uniquement les projets sélectionnés. Utile lorsqu’un registre appartient à une équipe, ou pour un déploiement progressif.

Vérifier un projet en particulier

Ouvrez un projet et allez dans Settings → Package Registries pour voir quels registres s’appliquent :
  • Les registres appliqués partout affichent un badge All projects. Modifiez-les depuis Integrations → Package Registries.
  • Les autres registres affichent un interrupteur que vous pouvez activer ou désactiver pour ce projet.
  • Un registre entièrement désactivé affiche un badge Disabled.
Modifier les registres d’un projet nécessite l’autorisation Change Project. Si le contrôle d’accès aux projets est activé, vous devez également avoir accès à ce projet.

Utiliser plusieurs registres

Vous pouvez ajouter autant de registres que nécessaire, et un projet peut en utiliser plusieurs simultanément :
  • Plusieurs registres pour le même type de paquet : les paquets sont recherchés dans tous.
  • Types de paquets différents : chacun est traité indépendamment.
  • Plusieurs dépôts sur un même registre : listez-les sous Additional repositories au lieu de créer des entrées séparées.
Pour un même type de paquet, utilisez la même méthode de configuration partout. Si certains registres utilisent Structured form et d’autres Paste config file, les fichiers collés sont ignorés.

Autorisations

Voir Groupes d’autorisations pour savoir comment les attribuer.

Sécurité

Vos identifiants de registre sont traités comme des secrets :
  • Stockage chiffré. Les identifiants sont chiffrés et ne sont jamais réaffichés après enregistrement. Lorsque vous modifiez un registre, le champ du jeton est vide ; le laisser vide conserve votre jeton existant.
  • Utilisés uniquement pendant les analyses. Les identifiants servent à s’authentifier auprès de votre registre pendant une analyse, et à rien d’autre.
  • Isolés. Les identifiants et les paquets téléchargés avec eux ne sont jamais partagés avec une autre analyse ni une autre organisation.
  • Jamais dans votre dépôt. Corgea n’écrit vos identifiants dans aucun fichier qu’il produit.
  • Masqués dans les journaux et les messages. Les identifiants sont retirés des messages d’erreur et des diagnostics affichés dans Corgea.
  • Accès en lecture seule. Corgea télécharge uniquement les paquets et lit leurs informations de dépendances.

Registres sur réseaux restreints

Si votre réseau bloque les registres publics et impose que tous les paquets passent par votre propre registre, pointez Corgea vers un dépôt qui distribue à la fois vos paquets internes et relaie les paquets publics. Corgea obtient alors tout ce qu’il lui faut depuis une source unique. Si votre registre ne distribue que des paquets internes et que les registres publics sont inaccessibles, l’analyse des dépendances ne peut pas aboutir.

Dépannage

Signification : Corgea a trouvé un paquet qu’il n’a pas pu rechercher — généralement un paquet interne sur un registre auquel il ne peut pas se connecter.Que faire : ajoutez un registre pour ce type de paquet, assurez-vous qu’il s’applique au projet, puis relancez l’analyse. Si un registre est déjà connecté, vérifiez l’URL et la validité du jeton.
Signification : le projet est configuré pour utiliser un registre privé, mais aucun registre utilisable n’était disponible au démarrage de l’analyse. En général, le registre a été désactivé, ne s’applique plus au projet, ou a été supprimé.Que faire : allez dans Integrations → Package Registries et vérifiez qu’un registre existe pour ce type de paquet, qu’il est Enabled, et qu’il s’applique à tous les projets ou inclut celui-ci.
Signification : Corgea s’est connecté mais n’a pas pu récupérer les paquets. Causes fréquentes : jeton expiré ou révoqué, URL pointant vers le mauvais dépôt, ou paquet absent du registre.Que faire : vérifiez les identifiants depuis l’extérieur de votre réseau :
Un 401 ou 403 signale des identifiants incorrects. Un 404 signale une URL incorrecte.
Signification : la récupération de vos dépendances a pris trop de temps, généralement un très grand projet ou un registre lent.Que faire : committez des fichiers de verrouillage lorsque c’est possible, afin de réduire le travail pendant l’analyse, et vérifiez les temps de réponse de votre registre. Relancez ensuite l’analyse.
Signification : le dépôt contient plus de modules indépendants que Corgea n’en traite au cours d’une même analyse.Que faire : si les modules non couverts sont importants, séparez-les en projets Corgea distincts, ou committez des fichiers de verrouillage pour eux.
Signification : vos paquets internes ont été récupérés, mais la vérification des vulnérabilités les concernant n’a pas abouti.Que faire : relancez l’analyse. Les résultats des paquets publics ne sont pas affectés ; seules les vulnérabilités propres aux paquets internes peuvent manquer.
Signification : Corgea a besoin de composants disponibles publiquement pour analyser votre projet, et ni votre registre ni Internet ne les fournissent.Que faire : pointez le registre vers un dépôt qui relaie également les paquets publics. Voir Registres sur réseaux restreints.
Signification : rien à corriger — Corgea ajoute son accès au registre en complément de la configuration présente dans votre dépôt au lieu de la remplacer, vos sources et règles existantes continuent donc de s’appliquer.Que faire : si des sources semblent toujours manquer, vérifiez que le fichier de configuration présent dans votre dépôt est valide. Corgea laisse intact un fichier qu’il ne peut pas lire plutôt que de risquer de casser votre build.
Signification : cela fonctionne, mais votre jeton circule en clair.Que faire : utilisez https en dehors des tests locaux.
Signification : la fonctionnalité est désactivée par défaut et, dans cet état, elle est masquée plutôt qu’affichée comme verrouillée — il n’y a donc rien à cliquer.Que faire : les registres de paquets privés sont proposés aux clients enterprise disposant d’un tenant dédié. Contactez support@corgea.com pour l’activer pour votre organisation, puis rechargez la page Integrations.

Bonnes pratiques

Commencez par un registre sur un seul projet, vérifiez que l’arbre de dépendances est correct, puis appliquez-le à tous les projets.
  • Utilisez un compte de service dédié en lecture seule plutôt qu’un jeton personnel.
  • Utilisez des jetons de longue durée et suivez leurs dates d’expiration pour que les analyses ne perdent pas discrètement en couverture.
  • Ajoutez une entrée par type de paquet, chacune avec son URL correspondante.
  • Privilégiez un dépôt qui relaie aussi les paquets publics — cela fonctionne que votre réseau soit restreint ou non.
  • Privilégiez le formulaire structuré, et n’utilisez un fichier de configuration collé que pour des réglages qu’il ne couvre pas.
  • Committez les fichiers de verrouillage quand c’est possible. Les analyses sont plus rapides et les résultats plus stables.
  • Faites tourner les jetons selon votre calendrier habituel et mettez le registre à jour dans Corgea. Laissez le champ du jeton vide lors d’une modification si vous ne le changez pas.

Voir aussi