Utiliser des jetons d'accès personnels

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

Un jeton d’accès personnel (PAT) est un autre mot de passe pour l’authentification Azure DevOps. Un PAT vous identifie et détermine les ressources et les opérations auxquelles vous avez accès. Traitez un PAT avec la même attention qu’un mot de passe.

Avertissement

Évitez les PAT lorsqu’une méthode d’authentification plus sécurisée est disponible. Pour les applications et l’automatisation, utilisez des jetons Microsoft Entra, des identitésmanagées ou des principaux de service dans la mesure du possible.

Si un outil ne prend pas en charge l’authentification Microsoft Entra, utilisez un PAT limité à l’organisation avec les autorisations minimales et la durée de validité la plus courte possible en pratique.

Important

Azure DevOps supprime progressivement les jetons d’accès personnels globaux. Tous les PAT mondiaux existants cessent de fonctionner le 1er décembre 2026. Migrez-les dès maintenant vers des PAT de portée organisationnelle ou vers l’authentification Microsoft Entra. Pour plus d’informations, consultez La mise hors service des jetons d’accès personnel globaux dans Azure DevOps.

Conditions préalables

  • Accès à une organisation Azure DevOps ou à une collection de Azure DevOps Server.
  • Autorisations requises pour les ressources et les opérations auxquelles le PAT accède. Un PAT ne peut pas accorder plus d’autorisations que son propriétaire.
  • Autorisation de créer des PAT sous les stratégies de votre organisation. Un administrateur peut restreindre la création, les autorisations et les durées de vie des PAT. Pour plus d’informations, consultez Gérer les PAT avec des stratégies.

Créer un PAT

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

  2. Dans la page d’accueil, ouvrez les paramètres utilisateur et sélectionnez Jetons d’accès personnels.

    Capture d’écran des paramètres utilisateur avec des jetons d’accès personnels sélectionnés.

  3. Sélectionnez + Nouveau jeton.

    Capture d’écran de la page Jetons d’accès personnel avec nouveau jeton sélectionné.

  4. Entrez un nom, sélectionnez une organisation et définissez une date d’expiration.

    Capture d’écran de la boîte de dialogue de création avec le nom du PAT, l’organisation et la date d’expiration configurés.

  5. Sélectionnez uniquement les étendues requises pour les tâches prévues.

    Par exemple, pour inscrire un agent auto-hébergé, sélectionnez Pools d’agents (lecture et gestion). Votre administrateur peut restreindre les PAT à portée complète ou exiger une entrée dans une liste d’autorisation pour des portées spécifiques.

    Capture d’écran des options d’étendue avec les étendues requises sélectionnées pour un nouveau PAT.

  6. Sélectionnez Créer, copier le jeton et le stocker dans un emplacement sécurisé. La valeur du jeton n’apparaît pas à nouveau.

    Capture d’écran d’un nouveau PAT prêt à être copié pour un stockage sécurisé.

Note

Les captures d’écran suivantes montrent Azure DevOps Services. L’interface Azure DevOps Server peut différer légèrement.

  1. Connectez-vous à votre portail web Azure DevOps Server (https://{server}/{collection} ou http://{server}:{port}/tfs/{collection}).

  2. Dans la page d’accueil, ouvrez les paramètres utilisateur et sélectionnez Jetons d’accès personnels.

    Capture d’écran des paramètres utilisateur avec des jetons d’accès personnels sélectionnés.

  3. Sélectionnez + Nouveau jeton.

    Capture d’écran de la page Jetons d’accès personnel avec nouveau jeton sélectionné.

  4. Entrez un nom, sélectionnez la collection et définissez une date d’expiration.

    Capture d’écran de la boîte de dialogue de création où le nom du PAT, la collection et la date d’expiration sont configurés.

  5. Sélectionnez uniquement les étendues requises pour les tâches prévues.

    Par exemple, pour inscrire un agent auto-hébergé, sélectionnez Pools d’agents (lecture et gestion).

    Capture d’écran des options d’étendue avec les étendues requises sélectionnées pour un nouveau PAT.

  6. Sélectionnez Créer, copier le jeton et le stocker dans un emplacement sécurisé. La valeur du jeton n’apparaît pas à nouveau.

    Capture d’écran d’un nouveau PAT prêt à être copié pour un stockage sécurisé.

Pour les organisations soutenues par Microsoft Entra ID, connectez-vous avec un nouveau PAT dans un délai de 90 jours ou il devient inactif. Pour plus d'informations, reportez-vous à la section Fréquence de connexion de l'utilisateur pour l'accès conditionnel.

Avis

Azure DevOps envoie une notification lorsque vous créez un PAT et une autre notification avant son expiration.

Capture d’écran d’un e-mail confirmant qu’un PAT a été créé.

Si une politique de l’organisation ne vous permet plus de régénérer un PAT, l’e-mail d’expiration indique cette restriction. Contactez votre administrateur de collection de projets si vous avez besoin d’une entrée de la liste d'autorisation.

Pour plus d’informations sur la configuration de l’e-mail, consultez Configurer un serveur SMTP et personnaliser l’e-mail pour les alertes et les demandes de commentaires.

Notification inattendue

Une notification inattendue peut signifier qu’un administrateur ou un outil a créé un PAT pour vous. Les noms de jetons courants sont les suivants :

  • git: https://dev.azure.com/{organization} on {machine}, créé lorsque Git se connecte à un référentiel Azure Repos.
  • Service Hooks: Azure App Service: Deploy web app, créé lorsqu’un déploiement Azure App Service est configuré.
  • Microsoft Teams Integration, créé lorsqu’une intégration Microsoft Teams est configurée.

Si vous ne reconnaissez pas un mot de passe, révoquez-le et modifiez votre mot de passe. Pour un compte Microsoft Entra, demandez à votre administrateur de passer en revue l’activité de connexion inconnue.

Utiliser un PAT

Utilisez un PAT pour les requêtes ponctuelles, les prototypes locaux ou les outils qui ne prennent pas en charge l'authentification Microsoft Entra. N’utilisez pas les PAT comme informations d’identification à long terme pour les applications ou services de production.

Azure DevOps accepte un PAT dans un en-tête d’authentification HTTP de base. Le nom d’utilisateur peut être vide. Encodez la chaîne :{PAT}en base64 et utilisez la valeur résultante dans cet en-tête :

Authorization: Basic BASE64_ENCODED_PAT

Les exemples suivants s’attendent à ce que la AZURE_DEVOPS_PAT variable d’environnement soit remplie à partir d’une source secrète sécurisée.

$patBytes = [Text.Encoding]::ASCII.GetBytes(":$env:AZURE_DEVOPS_PAT")
$headers = @{ Authorization = "Basic $([Convert]::ToBase64String($patBytes))" }

Invoke-RestMethod `
  -Uri "https://dev.azure.com/{organization}/{project}/_apis/build/builds?api-version=7.1" `
  -Headers $headers

Une fois qu’un prototype fonctionne, migrez-le vers Microsoft Entra OAuth pour l’accès d’utilisateur déléguéou un principal de service ou une identité managée pour l’accès aux applications.

Modifier un PAT

Vous pouvez modifier le nom, la date d’expiration ou les autorisations d’un PAT. La régénération d’un PAT crée une nouvelle valeur de jeton et invalide la valeur précédente. Vous ne pouvez pas modifier ou régénérer un PAT expiré ou révoqué ; créez-en un à la place.

  1. Dans la page d’accueil, ouvrez les paramètres utilisateur et sélectionnez Jetons d’accès personnels.

  2. Sélectionnez le PAT, puis sélectionnez Modifier.

    Capture d’écran d’un PAT existant avec Modification sélectionnée.

  3. Modifiez le nom du jeton, l’expiration ou les étendues, puis sélectionnez Enregistrer.

    Capture d’écran des paramètres PAT mis à jour prêts à être enregistrés.

Révoquer un PAT

Révoquez un PAT lorsqu’il est compromis, n’est plus utile ou dispose de plus d’autorisations que nécessaire.

  1. Dans la page d’accueil, ouvrez les paramètres utilisateur et sélectionnez Jetons d’accès personnels.

  2. Sélectionnez le PAT, puis sélectionnez Révoquer.

    Capture d’écran d’un PAT existant avec Revoke sélectionné.

  3. Dans la boîte de dialogue de confirmation, sélectionnez Révoquer.

    Capture d’écran de la boîte de dialogue de confirmation de révocation d’un PAT.

Remplacer un PAT arrivant à expiration ou révoqué

Une fois qu’un PAT expire ou est révoqué, Azure DevOps rejette les tentatives d’authentification suivantes qui l’utilisent. Un pipeline, un script, un client de package ou une opération Git échoue généralement la prochaine fois qu’il s’authentifie. Azure DevOps ne garantit pas que la révocation met fin à chaque connexion déjà établie.

Renouveler un PAT avant son expiration

Pour remplacer un PAT sans interruption de service évitable :

  1. Créez un PAT à l’échelle de l’organisation avec uniquement les autorisations requises et une durée de validité courte.

  2. Stockez la nouvelle valeur dans votre magasin de secrets. N’intégrez pas de PAT dans les URL de dépôt distant Git, .git/config, le code source, les fichiers YAML de pipeline ou les journaux.

  3. Testez le nouveau PAT avec une opération de non-production ou une intégration avant de mettre à jour chaque dépendance.

  4. Mettez à jour chaque service ou outil qui stocke l’ancien PAT :

    Integration Où mettre à jour les informations d’identification
    Git Gestionnaire d’informations d’identification Git ou un autre gestionnaire d’informations d’identification sécurisé
    Azure Pipelines Variable secrète, groupe de variables ou connexion de service
    Azure Artifacts Fournisseur d'informations d'identification Azure Artifacts ou configuration sécurisée du gestionnaire de package
    Scripts et clients REST Magasin de secrets ou variable d’environnement protégée
    Outils tiers Le stockage sécurisé des informations d’identification de l’outil
  5. Testez chaque intégration mise à jour. Exécutez le pipeline concerné, l’opération Git, l’opération de package, le script ou la requête d’API, puis recherchez les échecs d’authentification.

  6. Révoquez l’ancien PAT.

Tenez un inventaire du propriétaire, de la finalité, des autorisations, de la date d’expiration et des intégrations dépendantes de chaque PAT. Remplacez les PAT avant expiration en fonction de la stratégie de votre organisation et du risque du scénario.

Récupération après expiration ou révocation

Si un PAT cesse de fonctionner de façon inattendue :

  1. Sur la page Jetons d’accès personnels, vérifiez l’état et la date d’expiration du PAT.
  2. Créez un PAT de remplacement ne disposant que des autorisations requises par les intégrations concernées.
  3. Mettez à jour les intégrations qui ont enregistré le PAT non disponible.
  4. Testez chaque intégration et surveillez son prochaine opération planifiée pour les échecs d’authentification.

Si la raison de l’échec n’est pas claire, passez en revue les événements d’audit PAT pour déterminer si le pat a expiré, a été mis à jour ou a été révoqué.

Gérer les PAT avec les API de gestion du cycle de vie

Utilisez les API de gestion du cycle de vie PAT pour répertorier, créer, mettre à jour et révoquer vos propres PAT par programmation.

Ces API nécessitent un jeton d’accès Microsoft Entra à partir d’un flux délégué par l’utilisateur. Utiliser la portée vso.pats. Les principaux de service et les identités managées ne peuvent pas créer ou gérer des paT, car ils ne représentent pas d’utilisateur.

Opération Requête
Lister les PAT GET https://vssps.dev.azure.com/{organization}/_apis/tokens/pats?api-version=7.1
Créer un PAT POST https://vssps.dev.azure.com/{organization}/_apis/tokens/pats?api-version=7.1
Révoquer un PAT DELETE https://vssps.dev.azure.com/{organization}/_apis/tokens/pats?authorizationId={authorizationId}&api-version=7.1

Envoyez le jeton Microsoft Entra comme jeton de porteur. Une requête de création utilise la structure de corps suivante :

{
  "displayName": "CI build access",
  "scope": "vso.build",
  "validTo": "{expiration-in-UTC}",
  "allOrgs": false
}

La réponse à la requête de liste renvoie des jetons dans le tableau patTokens. Une réponse Create renvoie le secret une seule fois dans patToken.token. Stockez cette valeur de manière sécurisée et ne l’écrivez jamais dans les journaux. Pour révoquer l’ancien jeton, transmettez son authorizationId comme paramètre de requête indiqué dans le tableau.

Pour obtenir des schémas complets et des exemples, consultez Liste des paTs, Créer un pat et révoquer un pat.

Passer en revue les événements d’audit PAT

Azure DevOps Services enregistre les événements de cycle de vie PAT dans le journal d’audit de l’organisation. Dans les paramètres de l’organisation, sélectionnez Audit, puis filtrez les actions suivantes :

Action Event
Un PAT est créé Token.PatCreateEvent
Un PAT expire Token.PatExpiredEvent
Un PAT est détecté dans un dépôt public Token.PatPublicDiscoveryEvent
Un utilisateur révoque un PAT Token.PatRevokeEvent
Azure DevOps révoque un PAT Token.PatSystemRevokeEvent
Un PAT est modifié ou régénéré Token.PatUpdateEvent

Les événements liés à l’accès aux jetons ne sont pas actuellement journalisés. Utilisez le journal d’audit pour enquêter sur les modifications du cycle de vie, et non pour déterminer à quel moment ou si un PAT a été utilisé.

Rétention du journal d’audit

Les événements d’audit sont conservés pendant 90 jours, puis supprimés. La période de rétention n’est pas configurable. Pour conserver des événements plus longs, exportez-les au format CSV ou JSON ou configurez un flux d’audit vers un système SIEM (External Security Information and Event Management).

Pour plus d’informations, consultez Accéder à, exporter et filtrer les journaux d’audit et Événements d’audit Azure DevOps.

Configurer des stratégies PAT

Les administrateurs de locataire peuvent restreindre les PAT globaux et les PAT à étendue complète, définir une durée de vie maximale des PAT et contrôler la révocation automatique des PAT divulgués. Configurez les stratégies PAT à l’échelle du locataire dans Paramètres de l’organisation>Microsoft Entra.

Les propriétaires d’organisations peuvent restreindre la création de PAT pour une organisation donnée dans les paramètres de l’organisation>stratégies. Pour plus d’informations sur les rôles, le comportement des stratégies et les procédures de liste d’autorisation, consultez Gérer les PAT à l’aide de stratégies.

Format PAT

Les chaînes de PAT utilisent un format reconnaissable qui améliore la détection des secrets et réduit les faux positifs.

  • Les PAT comportent 84 caractères, dont 52 caractères générés aléatoirement.
  • Azure DevOps PAT contiennent la signature fixe AZDO aux positions 76 à 80.

Si votre intégration valide les PAT, elle prend en charge le format de 84 caractères. Pour en savoir plus sur les contrôles relatifs aux jetons divulgués, consultez Révoquer automatiquement les PAT divulgués.

Meilleures pratiques pour l'utilisation des PATs

Envisagez des alternatives

Créer des PAT

  • Créez uniquement des PAT à l’échelle de l’organisation. Les PAT mondiaux arrêtent de travailler le 1er décembre 2026.
  • Utilisez un PAT différent pour chaque outil ou flux de travail.
  • Sélectionnez uniquement les étendues requises pour la tâche.
  • Gardez la durée de vie aussi courte que pratique.
  • N’incluez pas de données personnelles ni une partie de la valeur du jeton dans son nom d’affichage.

Gérer les PAT

  • Ne partagez pas les PAT.
  • Stockez des PAT dans un magasin de secrets sécurisé, tel que Azure Key Vault.
  • Remplacez les paT avant leur expiration et révoquez-les lorsqu’ils ne sont plus nécessaires.
  • Révoquez immédiatement un PAT s’il est exposé ou compromis.

Pour les administrateurs

Passer en revue et répondre aux PATs à risque

Dans le cadre de votre révision de sécurité :

  1. Identifiez les PAT avec des autorisations complètes, une longue durée de vie, un accès global ou sans propriétaire ni objectif documentés.
  2. Passez en revue les événements de création, de mise à jour, de divulgation publique, d’expiration et de révocation de PAT dans le journal d’audit. Étant donné que l’accès au jeton n’est pas journalisé, n’utilisez pas le journal d’audit pour déterminer si un jeton d’accès personnel (PAT) est actif ou obsolète.
  3. Révoquez les PAT exposés, compromis ou inutiles. Pour le départ d’un utilisateur, utilisez les API d’administration des jetons prises en charge pour révoquer les PAT de l’utilisateur et avertir les propriétaires des intégrations concernées.
  4. Configurez les stratégies PAT du locataire et de l’organisation pour limiter les PAT globaux et à portée complète, définir des durées de vie maximales et contrôler la révocation automatique des PAT divulgués.
  5. Exportez des événements d’audit ou configurez un flux d’audit lorsque vos exigences de rétention dépassent 90 jours.

Foire aux questions

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

Connectez-vous à l’organisation pour laquelle le PAT est défini. Vous pouvez lister vos PAT de n’importe quelle organisation du même locataire Microsoft Entra en modifiant le filtre Portée d’accès, mais vous ne pouvez modifier un PAT à portée d’organisation que depuis cette organisation.

Que se passe-t-il pour les paT lorsqu’un compte d’utilisateur est désactivé ?

Lorsqu’un compte est désactivé ou supprimé d’une organisation, ses PAT ne peuvent plus accéder aux ressources de cette organisation. Azure DevOps ne supprime pas automatiquement les PAT. Si l’accès est restauré, un mot de passe qui n’a pas expiré ou qui a été révoqué fonctionne avec les autorisations actuelles de l’utilisateur.

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

Non. Les PAT fonctionnent avec la plupart des API REST Azure DevOps. Certaines API, notamment les organisations, les profils et les API de gestion du cycle de vie PAT, nécessitent des jetons Microsoft Entra.

Que se passe-t-il si je valide un PAT dans un dépôt GitHub public ?

Azure DevOps analyse les référentiels de GitHub publics pour détecter les paT fuites. Lorsqu’il détecte un jeton, Azure DevOps avertit le propriétaire et enregistre un événement d’audit. Sauf si la stratégie du locataire désactive la révocation automatique, Azure DevOps révoque le PAT divulgué. Pour plus d'informations, reportez-vous à la section Révoquer automatiquement les jetons d'accès personnels ayant fait l'objet d'une fuite.

Puis-je utiliser un PAT comme clé API pour publier des packages NuGet ?

Non. Azure Artifacts ne prend pas en charge le passage d'un PAT en tant que clé API. Dans un environnement de développement local, installez le fournisseur d’informations d’identification Azure Artifacts. Dans Azure Pipelines, utilisez la tâche d’authentification NuGet.

Pour obtenir des exemples, consultez Publier avec dotnet, Publier avec NuGet.exeet Publier des packages NuGet avec Azure Pipelines.

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

Vérifiez si le PAT a expiré, a été révoqué, est devenu inactif, a des étendues insuffisantes ou appartient à un utilisateur dont les autorisations ont changé. Pour une organisation soutenue par Microsoft Entra ID, connectez-vous à Azure DevOps et terminez l’invite d’authentification complète, puis réessayez. Votre configuration d’accès conditionnel peut nécessiter une connexion plus fréquente.

Pour Azure DevOps Server, l’authentification de base IIS empêche l’authentification PAT. Conservez l’authentification de base IIS désactivée.

Comment créer un jeton d’accès qui n’est pas lié à un utilisateur ?

Les PAT sont toujours associés à l’utilisateur qui les a créés. Pour une identité non utilisateur, utilisez un jeton Microsoft Entra émis à un principal de service d’application ou une identité managée. Pour les pipelines, utilisez une connexion de service.

Comment renouveler un PAT par l’API ?

Les API de gestion du cycle de vie ne régénèrent pas un PAT en une seule opération. Répertoriez l’ancien PAT pour obtenir ses métadonnées, créez un nouveau pat avec l’étendue et l’expiration requises, mettez à jour et testez chaque intégration dépendante, puis révoquez l’ancien PAT à l’aide de son authorizationId. Pour connaître les itinéraires appropriés, consultez Gérer les PAT avec les API de gestion du cycle de vie.

Pourquoi un message d’approbation d’administrateur s’affiche-t-il quand j’appelle 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 l'application Microsoft Entra puisse accéder aux ressources de l'organisation. Contactez l’administrateur de votre locataire.