Note
L’accès à cette page nécessite une autorisation. Vous pouvez essayer de vous connecter ou de modifier les répertoires.
L’accès à cette page nécessite une autorisation. Vous pouvez essayer de changer de répertoire.
Pour rendre NuGet plus sécurisé pour la distribution de packages, vous pouvez prendre le contrôle des clés API en ajoutant des étendues.
La possibilité de fournir une étendue à vos clés API vous donne un meilleur contrôle sur vos API. Vous pouvez:
- Créez plusieurs clés API étendues qui peuvent être utilisées pour différents packages avec des délais d’expiration variables.
- Obtenez des clés API en toute sécurité.
- Modifiez les clés API existantes pour modifier l’applicabilité du package.
- Actualisez ou supprimez des clés API existantes sans entraver les opérations à l’aide d’autres clés.
Pourquoi prenons-nous en charge les clés API limitées ?
Nous prenons en charge les étendues des clés API pour vous permettre d’avoir des autorisations plus précises. Auparavant, NuGet offrait une clé API unique pour un compte et cette approche comportait plusieurs inconvénients :
- Une clé API pour contrôler tous les packages. Avec une clé API unique utilisée pour gérer tous les packages, il est difficile de partager en toute sécurité la clé lorsque plusieurs développeurs sont impliqués avec différents packages et lorsqu’ils partagent un compte d’éditeur.
- Toutes les autorisations ou aucune. Toute personne ayant accès à la clé API dispose de toutes les autorisations (publier, envoyer (push et annuler la liste) sur les packages. Cela n’est souvent pas souhaitable dans l’environnement avec plusieurs équipes.
- Point de défaillance unique. Une clé API unique signifie également un point de défaillance unique. Si la clé est compromise, tous les packages associés au compte peuvent potentiellement être compromis. L’actualisation de la clé API est la seule façon de brancher la fuite et d’éviter une interruption de votre flux de travail CI/CD. En outre, il peut arriver que vous souhaitiez révoquer l’accès à la clé API d’un individu (par exemple, lorsqu’un employé quitte l’organisation). Il n’y a pas de moyen propre de gérer cela aujourd’hui.
Avec les clés API délimitées, nous essayons de résoudre ces problèmes tout en veillant à ce qu’aucun des flux de travail existants ne s’interrompe.
Acquérir une clé API
Connectez-vous à votre compte nuget.org ou créez un compte si vous n’en avez pas déjà un.
Sélectionnez votre nom d’utilisateur en haut à droite, puis sélectionnez Clés API.
Sélectionnez Créer, puis indiquez un nom pour votre clé.
Sous Sélectionner des périmètres, sélectionnez Push.
Sous Sélectionner le modèle de motif glob des packages>, entrez *.
Cliquez sur Créer.
Sélectionnez Copier pour copier la nouvelle clé.
Important
- Conservez toujours votre clé API comme secret. La clé API est semblable à un mot de passe qui permet à toute personne de gérer des packages en votre nom. Supprimez ou régénérez votre clé API si elle est accidentellement révélée.
- Enregistrez votre clé dans un emplacement sécurisé, car vous ne pouvez pas copier la clé ultérieurement. Si vous revenez à la page de clé API, vous devez régénérer la clé pour la copier. Vous pouvez également supprimer la clé API si vous ne souhaitez plus envoyer de packages.
Définition des contours vous permet de créer des clés API distinctes à des fins différentes. Chaque clé a un délai d’expiration et vous pouvez limiter la clé à des packages ou des modèles glob spécifiques. Vous devez également étendre chaque clé à des opérations spécifiques : envoyer (push) de nouveaux packages et versions de package, envoyer (push) uniquement de nouvelles versions de package ou annuler la liste.
Grâce à la définition de périmètre, vous pouvez créer des clés API pour différentes personnes qui gèrent des packages pour votre organisation afin qu’elles aient uniquement les autorisations dont elles ont besoin.
Créer des clés d’API délimitées
Vous pouvez créer plusieurs clés API en fonction de vos besoins. Une clé API peut s’appliquer à un ou plusieurs packages, ont des étendues variables qui accordent des privilèges spécifiques et ont une date d’expiration associée.
Dans l’exemple suivant, vous disposez d’une clé API nommée Contoso service CI qui peut être utilisée pour envoyer (push) des packages pour des packages spécifiques Contoso.Service et est valide pendant 365 jours. Il s’agit d’un scénario classique où différentes équipes au sein de la même organisation travaillent sur différents packages, et les membres de l’équipe fournissent la clé qui leur accorde des privilèges uniquement pour le package sur lequel ils travaillent. L’expiration sert de mécanisme pour empêcher les clés obsolètes ou oubliées.
Utiliser des motifs glob
Si vous travaillez sur plusieurs packages et que vous disposez d’une grande liste de packages à gérer, vous pouvez choisir d’utiliser des modèles globbing pour sélectionner plusieurs packages ensemble. Par exemple, si vous souhaitez accorder des étendues spécifiques à une clé pour tous les packages dont l’ID commence par Fabrikam.Service, vous pouvez le faire en spécifiant fabrikam.service.* dans la zone de texte du modèle de correspondance globale.
L’utilisation de modèles glob pour déterminer les autorisations de clé API s’applique également aux nouveaux packages correspondant au modèle glob. Par exemple, si vous essayez d’envoyer (push) un nouveau package nommé Fabrikam.Service.Framework, vous pouvez le faire avec la clé créée précédemment, car le package correspond au modèle fabrikam.service.*glob .
Obtenir des clés API en toute sécurité
Pour la sécurité, une clé nouvellement créée n’est jamais affichée à l’écran et est disponible uniquement à l’aide du bouton Copier . De même, la clé n’est pas accessible une fois la page actualisée.
Modifier les clés API existantes
Vous pouvez également mettre à jour les autorisations et les étendues de clé sans modifier la clé elle-même. Si vous avez une clé avec des étendues spécifiques pour un package unique, vous pouvez choisir d’appliquer la ou les mêmes étendues sur un ou plusieurs autres packages.
Actualiser ou supprimer des clés API existantes
Le propriétaire du compte peut choisir d’actualiser la clé, auquel cas l’autorisation (sur les packages), l’étendue et l’expiration restent identiques, mais une nouvelle clé est émise rendant l’ancienne clé inutilisable. Cela est utile pour gérer les clés obsolètes ou lorsqu’il existe un risque de fuite de clé API.
Vous pouvez également choisir de supprimer ces clés si elles ne sont plus nécessaires. La suppression d’une clé supprime la clé et la rend inutilisable.
Questions fréquentes (FAQ)
Qu’arrive-t-il à mon ancienne clé API (héritée) ?
Votre ancienne clé API (héritée) continue de fonctionner et peut fonctionner tant que vous le souhaitez. Toutefois, ces clés seront supprimées si elles n’ont pas été utilisées depuis plus de 365 jours pour envoyer (push) un package. Pour plus d’informations, consultez le billet de blog Modifications apportées aux clés API arrivant à expiration. Vous ne pouvez plus actualiser cette clé. Vous devez supprimer la clé héritée et créer une clé délimitée à la place.
Note
Cette clé dispose de toutes les autorisations sur tous les packages et n’expire jamais. Vous devez envisager de supprimer cette clé et de créer de nouvelles clés avec des autorisations délimitées et une expiration définitive.
Combien de clés API puis-je créer ?
Il n’existe aucune limite quant au nombre de clés API que vous pouvez créer. Toutefois, nous vous conseillons de le conserver à un nombre gérable afin que vous ne finissent pas par avoir de nombreuses clés obsolètes sans savoir où et qui les utilise.
Puis-je supprimer ma clé API héritée ou interrompre l’utilisation maintenant ?
Yes. Vous pouvez- et vous devez probablement supprimer votre clé API héritée.
Puis-je récupérer ma clé API que j’ai supprimée par erreur ?
Non. Une fois supprimé, vous pouvez uniquement créer de nouvelles clés. Il n’existe aucune récupération possible pour les clés supprimées accidentellement.
L’ancienne clé API continue-t-elle de fonctionner lors de l’actualisation de la clé API ?
Non. Une fois que vous actualisez une clé, une nouvelle clé est générée qui a la même étendue, l’autorisation et l’expiration que l’ancienne. L’ancienne clé cesse d’exister.
Puis-je accorder plus d’autorisations à une clé API existante ?
Vous ne pouvez pas modifier l’étendue, mais vous pouvez modifier la liste des packages à laquelle elle s’applique.
Comment savoir si l’une de mes clés a expiré ou arrive à expiration ?
Si une clé expire, nous vous informerons par le biais d’un message d’avertissement en haut de la page. Nous envoyons également un e-mail d’avertissement au titulaire du compte dix jours avant l’expiration de la clé afin que vous puissiez agir correctement à l’avance.