Partager via


Utiliser des jetons d'accès personnels

Azure DevOps Services | Azure DevOps Server 2022 | Azure DevOps Server 2019

Un jeton d'accès personnel (PAT) sert de mot de passe alternatif pour s'authentifier auprès d'Azure DevOps. Ce PAT vous identifie et détermine votre accessibilité et l'étendue de votre accès. Traitez les TP avec le même niveau de prudence que les mots de passe.

Lorsque vous utilisez des outils Microsoft, votre compte Microsoft (MSA) ou Microsoft Entra ID est reconnu et pris en charge. Si vous utilisez des outils qui ne prennent pas en charge les comptes Microsoft Entra ou si vous préférez ne pas partager vos informations d’identification principales, envisagez d’utiliser des jetons d'accès personnels comme méthode d’authentification alternative. Cependant, nous recommandons d'utiliser les tokens Microsoft Entra plutôt que les PAT lorsque cela est possible.

Importante

Nous recommandons d'utiliser les jetons Microsoft Entra, plus sécurisés, plutôt que les jetons d’accès personnels, qui présentent un risque plus élevé. Apprenez-en davantage sur nos efforts de réduction de l’utilisation du PAT. Passez en revue nos conseils d’authentification pour choisir le mécanisme d’authentification approprié pour vos besoins.

Conditions préalables

Catégorie Spécifications
Autorisations Autorisation d’accès et de modification des paramètres utilisateur dans lesquels les PAT sont gérés.
- Accédez à votre profil et sélectionnez paramètres utilisateur>jetons d’accès personnels. Si vous pouvez voir et gérer vos PAT ici, c'est que vous disposez des permissions nécessaires.
- Accédez à votre projet et sélectionnez paramètres du projet>Autorisations. Trouvez votre compte d'utilisateur dans la liste et vérifiez les permissions qui vous sont attribuées. Recherchez les permissions liées à la gestion des jetons ou des paramètres utilisateur.
- Si votre organisation a des stratégies en place, un administrateur peut avoir besoin d’accorder des autorisations spécifiques ou de vous ajouter à une liste verte pour créer et gérer des PAT.
- Les PATs sont connectés au compte d’utilisateur qui a créé le jeton. Selon les tâches que le PAT effectue, il est possible que vous ayez vous-même besoin de plus d’autorisations.
Niveaux d’accès Au moins un accès de base.
Tâches Utilisez des PAT uniquement si nécessaire et faites-les toujours pivoter régulièrement. Consultez notre section sur les meilleures pratiques lors de l’utilisation des PAT.

Créer un PAT

  1. Connectez-vous à votre organisation (https://dev.azure.com/{Your_Organization}).

  2. À partir de votre page d'accueil, ouvrez les paramètres utilisateur et sélectionnez Jetons d'accès personnels.

    Capture d'écran montrant la sélection, Jetons d'accès personnels.

  3. Sélectionnez + Nouveau jeton.

    Capture d'écran montrant la sélection, Nouveau jeton.

  4. Nommez votre jeton, sélectionnez l'organisation dans laquelle vous souhaitez l'utiliser, puis paramétrez votre jeton pour qu'il expire automatiquement au bout d'un certain nombre de jours.

    Capture d'écran montrant la saisie des informations de base sur le token.

  5. Sélectionnez les périmètres pour autoriser ce jeton pour vos tâches spécifiques.

    Par exemple, pour créer un jeton permettant à un agent de construction et de publication de s'authentifier auprès d'Azure DevOps, définissez l'étendue du jeton sur Pools d'agents (Lire & gérer). Pour lire les événements du journal d'audit et gérer ou supprimer les flux, sélectionnez Lire le journal d'audit, puis Créer.

    Capture d'écran montrant les étendues sélectionnées pour un PAT.

    Remarque

    Votre administrateur peut restreindre votre capacité à créer des PAT à portée complète ou uniquement à la création de PAT à portée d’empaquetage. Contactez votre administrateur pour être ajouté à la liste d'autorisation si vous avez besoin de permissions supplémentaires. Certaines étendues, par exemple, vso.governancepeuvent ne pas être disponibles dans l’interface utilisateur si elles ne sont pas destinées à une utilisation publique généralisée.

  6. Lorsque vous avez terminé, copiez le jeton et stockez-le dans un emplacement sécurisé. Pour votre sécurité, il ne s'affiche plus.

    Capture d'écran montrant comment copier le jeton dans votre presse-papiers.

Utilisez votre PAT partout où vos informations d'identification sont requises pour l'authentification dans Azure DevOps.

Importante

Avis

Pendant la durée de vie d’un pat, les utilisateurs reçoivent deux notifications : une lorsque le PAT est créé et un autre sept jours avant son expiration.

Une fois que vous avez créé un PAT, vous pouvez recevoir une notification similaire à l’exemple suivant. Cette notification confirme que votre PAT a été ajouté avec succès à votre organisation.

Capture d'écran montrant la notification de création d'un PAT.

Un e-mail de notification d’expiration est envoyé trois jours avant l’expiration. Si votre administrateur a supprimé votre capacité à créer des PAT dans l’organisation, l’e-mail indique qu’il n’est plus possible de régénérer les PAT. Contactez votre administrateur de collection de projets pour être inclus dans une liste d'autorisation permettant de continuer à obtenir des autorisations de création de PAT dans cette organisation.

Pour plus d'informations, voir Configurer un serveur SMTP et personnaliser les e-mails pour les alertes et les requêtes de commentaires.

Notification inattendue

Si vous recevez une notification PAT inattendue, cela peut signifier qu'un administrateur ou un outil a créé un PAT pour vous. Voici quelques exemples :

  • Un jeton nommé « git : https://dev.azure.com/{Your_Organization} on YourMachine » est créé lorsque vous vous connectez à un référentiel Git Azure DevOps via git.exe.
  • Un jeton nommé « Service Hooks : Azure App Service : Deploy web app » est créé lorsque vous ou un administrateur configurez le déploiement d'une application Web Azure App Service.
  • Un jeton nommé « WebAppLoadTestCDIntToken » est créé lorsque vous ou un administrateur configurez un test de charge Web dans le cadre d'un pipeline.
  • Un jeton nommé « Microsoft Teams Integration » est créé lorsqu'une extension de messagerie Microsoft Teams Integration est configurée.

Avertissement

  • Révoquez le PAT (et changez votre mot de passe) si vous suspectez qu'il existe par erreur.
  • Si vous êtes un utilisateur de Microsoft Entra, vérifiez auprès de votre administrateur si une source ou un emplacement inconnu a accédé à votre organisation.
  • Consultez la FAQ sur les check-ins PAT accidentels dans les référentiels GitHub publics.

Utiliser un PAT

Votre PAT sert d'identité numérique, à l'instar d'un mot de passe. Vous pouvez utiliser les PAT comme un moyen rapide d'effectuer des requêtes ponctuelles ou de prototyper une application localement. Utilisez un PAT dans votre code pour authentifier les demandes d’API REST et automatiser les flux de travail en incluant le PAT dans l’en-tête d’autorisation de votre requête.

Importante

Une fois que votre code d’application fonctionne, passez à Microsoft Entra OAuth pour acquérir des jetons au nom des utilisateurs de votre applicationou un principal de service ou une identité managée pour acquérir des jetons en tant qu’application. Il n’est pas recommandé de continuer l'exécution d'applications ou de scripts avec des PATs à long terme. Les jetons Microsoft Entra peuvent être utilisés partout où un PAT est utilisé. Envisagez d’acquérir un jeton Microsoft Entra via Azure CLI pour les demandes ad hoc.

Pour fournir le PAT via un en-tête HTTP, vous devez d’abord le convertir en chaîne Base64 . Il peut ensuite être fourni en tant qu’en-tête HTTP au format suivant.


Authorization: Basic BASE64_USERNAME_PAT_STRING

Modifier un PAT

Effectuez les étapes suivantes pour :

  • Régénérer un PAT pour créer un nouveau jeton, ce qui invalide le précédent.
  • Prolonger un PAT pour augmenter sa période de validité.
  • Modifier l'étendue d'un PAT pour changer ses permissions.
  1. À partir de votre page d'accueil, ouvrez les paramètres utilisateur et sélectionnez Jetons d'accès personnels.

  2. Sélectionnez le jeton que vous souhaitez modifier, puis cliquez sur Modifier.

    Capture d'écran montrant le bouton Modifier en surbrillance pour modifier un PAT.

  3. Modifiez le nom du jeton, son expiration ou l'étendue de l'accès associé au jeton, puis sélectionnez Enregistrer.

    Capture d'écran montrant le PAT modifié.

Révoquer un PAT

Vous pouvez révoquer un PAT à tout moment pour ces raisons et d'autres encore :

  • Révoquez un PAT si vous soupçonnez qu’il est compromis.
  • Révoquez un PAT lorsqu’il n’est plus nécessaire.
  • Révoquer un PAT pour appliquer des stratégies de sécurité ou des exigences de conformité.
  1. À partir de votre page d'accueil, ouvrez les paramètres utilisateur et sélectionnez Jetons d'accès personnels.

  2. Sous Sécurité, sélectionnez Jetons d'accès personnels. Sélectionnez le jeton pour lequel vous souhaitez révoquer l'accès, puis sélectionnez Révoquer.

    Capture d'écran montrant la sélection pour révoquer un seul token ou tous les tokens.

  3. Sélectionnez Révoquer dans la boîte de dialogue de confirmation.

    Capture d'écran montrant l'écran de confirmation pour révoquer PAT.

API de gestion du cycle de vie PAT

Les API de gestion du cycle de vie PAT peuvent être utiles lors de la maintenance de gros volumes de jetons par le biais de l’interface utilisateur. La gestion de la rotation PAT par programmation ouvre également la possibilité de faire pivoter régulièrement les PAT et de raccourcir leur durée de vie par défaut. Notre exemple d’application Python peut être configuré avec votre locataire Microsoft Entra et votre organisation Azure DevOps.

Voici quelques points à noter sur ces API :

  • Les jetons d’accès Microsoft Entra sont requis pour accéder à cette API, car généralement une forme d’authentification plus forte est recommandée lors de la frappe de nouveaux jetons.
  • Seuls les utilisateurs ou les applications utilisant un flux « au nom de l'utilisateur » peuvent générer des jetons d'accès personnel. Les applications utilisant des flux d’authentification « au nom de l’application » ou des flux d’authentification qui n’émettent pas de jetons d’accès Microsoft Entra ne sont pas valides pour une utilisation avec cette API. Par conséquent, les principaux de service ou les identités managées ne peuvent pas créer ou gérer des PAT.
  • Auparavant, les API de gestion du cycle de vie PAT prenaient uniquement en charge l’étendue user_impersonation. Désormais, l’étendue vso.pats est disponible et constitue l’étendue recommandée à utiliser avec ces API. Réduisez la portée de toutes les applications qui s'appuyaient précédemment sur user_impersonation pour appeler ces API.

Modifications du format

À compter de Juillet 2024, nous avons mis à jour le format des chaînes PAT pour améliorer la détection des secrets dans nos outils de détection de fuites de secrets PAT et nos offres des partenaires. Ce nouveau format PAT inclut des bits plus identifiables pour améliorer le taux de détection faux positifs dans ces outils de détection et atténuer les fuites détectées plus rapidement.

  • De nouveaux jetons sont désormais de 84 caractères, avec 52 caractères étant des données aléatoires, ce qui améliore l’entropie globale, ce qui rend les jetons plus résistants aux attaques par force brute.
  • Les jetons émis par notre service incluent une signature fixe AZDO aux positions 76-80.

Si vous utilisez un PAT émis avant ces données, régénérez votre PAT. Si vous intégrez des PAT et que la validation PAT est intégrée, mettez à jour votre code de validation pour prendre en charge les longueurs de jetons nouvelles et existantes.

Avertissement

Les deux formats restent valides pour un avenir prévisible. À mesure que l’adoption du nouveau format augmente, nous pourrions mettre hors service des paT de 52 caractères plus anciens.

Meilleures pratiques pour l'utilisation des PATs

Envisagez des alternatives

  • Acquérir un jeton Microsoft Entra via le Azure CLI pour les demandes "ad hoc" au lieu de créer un PAT plus long.
  • Utilisez des gestionnaires d’informations d’identification tels que Git Credential Manager ou Azure Artifacts Credential Manager pour simplifier la gestion des informations d’identification, avec l’authentification définie oauth sur ou les jetons Microsoft Entra.

Création de PAT

  • Ne placez pas de données personnelles dans le nom du PAT. Ne renommez pas le nom PAT pour inclure un ou plusieurs jetons PAT réels.
  • Évitez de créer des PAT globaux, sauf si nécessaire dans toutes les organisations.
  • Utilisez un autre jeton par flux ou par cas d’utilisateur.
  • Sélectionnez uniquement les étendues minimales requises pour chaque PAT. Accordez le minimum de privilèges nécessaires pour votre tâche spécifique et créez des tokens PAT distincts avec des étendues limitées pour différents flux de travail au lieu d'utiliser un seul jeton à large portée. Si votre PAT a besoin d’autorisations en lecture seule, ne fournissez pas d’autorisations d’écriture tant que cela n’est pas nécessaire.
  • Conservez les durées de vie PAT courtes (une semaine est idéale, même plus courte est meilleure).

Gestion des PAT

  • Ne partagez pas vos PAT !
  • Stockez vos PAT dans une solution de gestion de clés sécurisée, comme Azure KeyVault.
  • Effectuez régulièrement une rotation ou régénérez vos PAT via l’interface utilisateur ou les API de gestion du cycle de vie des PAT.
  • Révoquez les PAT lorsqu’il n’est plus nécessaire.
  • Renouvelez vos PAT pour utiliser le nouveau format de PAT afin d'améliorer la détection de secrets divulgués et leur révocation par nos outils propriétaires.

Pour les administrateurs

  • Les administrateurs de locataires peuvent définir des stratégies pour restreindre la création globale de PAT, la création de PAT à portée complète et la durée prolongée de PAT.
  • Les administrateurs des locataires peuvent révoquer les PAT pour les utilisateurs de leur organisation si le PAT est compromis.
  • Les administrateurs de l’organisation peuvent restreindre la création de PAT dans l’organisation. Si les PAT sont toujours nécessaires, limitez leur création à celles de la liste autorisée.

Foire aux questions

Q : Pourquoi ne puis-je pas modifier ou régénérer un PAT limité à une seule organisation ?

R : Connectez-vous à l'organisation où votre PAT est défini. Vous pouvez afficher vos PAT lorsque vous êtes connecté à une organisation quelconque dans le même ID Microsoft Entra en modifiant le filtre d'étendue d'accès, mais vous ne pouvez modifier que les jetons d'étendue de l'organisation lorsque vous êtes connecté à cette organisation spécifique.

Q : Qu'advient-il d'un PAT si le compte d'un utilisateur est désactivé ?

R : Lorsqu'un utilisateur est supprimé d'Azure DevOps, le PAT est invalidé dans l'heure qui suit. Si votre organisation est connectée à Microsoft Entra ID, le PAT est également invalidé dans Microsoft Entra ID, car il appartient à l'utilisateur. Nous vous recommandons de faire pivoter le PAT vers un autre utilisateur ou compte de service afin de maintenir les services en fonctionnement.

Q: Puis-je utiliser des PAT avec toutes les API REST Azure DevOps ?

A : Non. Vous pouvez utiliser des PAT avec la plupart des API REST Azure DevOps, mais les organisations et les profils et les API pat Management Lifecycle prennent uniquement en charge les jetons Microsoft Entra.

Q : Que se passe-t-il si j'enregistre accidentellement mon PAT dans un référentiel public sur GitHub ?

R : Azure DevOps analyse les PAT enregistrés dans des référentiels publics sur GitHub. Lorsque nous trouvons un jeton qui a fui, nous envoyons immédiatement une notification détaillée par e-mail au propriétaire du jeton et enregistrons un événement dans le journal d'audit de votre organisation Azure DevOps. Nous encourageons les utilisateurs concernés à atténuer le problème en révoquant le jeton ayant fait l'objet d'une fuite et en le remplaçant par un nouveau jeton.

À moins que vous n'ayez désactivé la stratégie Révoquer automatiquement les jetons d'accès personnels ayant fait l'objet d'une fuite, nous révoquons immédiatement le PAT ayant fait l'objet d'une fuite. Pour plus d'informations, reportez-vous à la section Révoquer automatiquement les jetons d'accès personnels ayant fait l'objet d'une fuite.

Q : Puis-je utiliser un jeton d'accès personnel comme clé ApiKey pour publier des packages NuGet dans un flux Azure Artifacts à l'aide de la ligne de commande dotnet/nuget.exe ?

A : Non. Azure Artifacts ne prend pas en charge le passage d'un PAT en tant que ApiKey. Lors de l’utilisation d’un environnement de développement local, nous recommandons d’installer le Fournisseur d’informations d’identification Azure Artifacts pour vous authentifier auprès d’Azure Artifacts. Si vous souhaitez obtenir plus d'informations, consultez les exemples suivants : dotnet, NuGet.exe. Si vous souhaitez publier vos packages à l'aide d'Azure Pipelines, utilisez la tâche NuGet Authenticate pour vous authentifier avec votre flux. Consultez l'exemple .

Q : Pourquoi mon PAT a-t-il cessé de fonctionner ?

R : L'authentification PAT nécessite que vous vous connectiez régulièrement à Azure DevOps en utilisant le flux d'authentification complet. Une connexion tous les 30 jours est suffisante pour de nombreux utilisateurs, mais il se peut que vous deviez vous connecter plus fréquemment en fonction de votre configuration Microsoft Entra. Si votre PAT cesse de fonctionner, essayez d'abord de vous connecter à votre organisation et complétez la requête d'authentification complète. Si votre PAT ne fonctionne toujours pas, vérifiez s'il a expiré.

L'activation de l'authentification de base IIS invalide l'utilisation des PAT pour Azure DevOps Server. Nous vous recommandons de laisser toujours l'Authentification de base IISdésactivée.

Avertissement

Si vous utilisez Git avec l’authentification de base IIS, Git interrompt parce qu’il nécessite des PAT pour l’authentification utilisateur. Vous pouvez ajouter un en-tête supplémentaire aux demandes Git pour l’utiliser avec l’authentification de base IIS, mais nous vous déconseillons cette action. L’en-tête supplémentaire doit être utilisé pour toutes les installations d’Azure DevOps Server, car Windows Auth empêche également l’utilisation de PAT. L’en-tête supplémentaire doit également inclure un encodage de base 64 de user:PAT.

git -c http.extraheader='Authorization: Basic [base 64 encoding of "user:password"]' ls-remote http://tfsserver:8080/tfs/DefaultCollection/_git/projectName

Q : Comment créer des jetons d’accès qui ne sont pas liés à une personne ?

R : tous les PAT sont associés à l’identité de l’utilisateur qui l’a créée. Les applications ne peuvent pas créer de paTs.

Dans Azure DevOps, vous pouvez générer des jetons d’accès qui ne sont pas liés à un utilisateur spécifique à l’aide de jetons Microsoft Entra émis par un principal du service d’application ou une identité managée. Pour les pipelines, utilisez les connexions de service pour authentifier et autoriser en toute sécurité les tâches automatisées sans compter sur des informations d’identification spécifiques à l’utilisateur.

Q : Comment puis-je régénérer/faire pivoter des PAT via l’API ? J’ai vu cette option dans l’interface utilisateur, mais je ne vois pas de méthode similaire dans l’API.

La fonctionnalité « Régénérer » disponible dans l’interface utilisateur effectue effectivement quelques actions, qui peuvent être répliquées via l’API.

Pour faire pivoter votre PAT, procédez comme suit :

  1. Consultez les métadonnées PAT avec un appel GET ,
  2. Créez un nouveau PAT avec l’ancien ID PAT à l’aide d’un appel POST ,
  3. Révoquez l’ancien PAT à l’aide d’un appel DELETE .

Q : Je vois une fenêtre contextuelle « Besoin d’approbation d’administrateur » lorsque j’essaie d’utiliser une application Microsoft Entra pour appeler les API de gestion du cycle de vie PAT.

Les stratégies de sécurité de votre locataire nécessitent le consentement de l’administrateur avant que les applications puissent accéder aux ressources de l’organisation. Contactez votre administrateur de locataire.

Q : Puis-je utiliser un principal de service pour créer ou gérer des PAT ?

Non, les jetons d’accès personnels appartiennent à une identité utilisateur. Les principaux services Microsoft Entra ou les identités managées sont en mesure de générer des jetons Microsoft Entra de courte durée utilisables dans la plupart des contextes acceptant un PAT. Apprenez-en davantage sur nos efforts pour réduire l’utilisation des PAT dans Azure DevOps et explorez le remplacement des PAT par des jetons Microsoft Entra.