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 l’authentification dans Azure DevOps. Ce PAT vous identifie et détermine votre accessibilité et votre étendue d’accès. Par conséquent, 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 une méthode reconnue et prise en charge. Si vous utilisez des outils qui ne prennent pas en charge les comptes Microsoft Entra ou si vous ne souhaitez pas partager vos informations d’identification principales avec ces outils, les PAT peuvent constituer une bonne alternative. Dans le cas contraire, nous recommandons les jetons Microsoft Entra plutôt que les PAT dans la mesure du possible.
Conseil
Nous vous recommandons d’examiner nos consignes d’authentification pour choisir le mécanisme d’authentification adapté à vos besoins. Jetons Entra : Il s’agit de notre mécanisme d’authentification recommandé pour les développeurs qui souhaitent s’intégrer à Azure DevOps. Découvrez-en plus dans nos blogs sur la réduction de l’utilisation des PAT sur notre plateforme.
Vous pouvez gérer les PAT par les méthodes suivantes :
- Interface utilisateur (IU) : via les paramètres utilisateur, comme décrit dans cet article.
- API de gestion du cycle de vie des PAT
- Gestionnaires d'accréditation Git pour les opérations Git. Les gestionnaires de certificats facilitent la gestion des jetons. Sans cela, les utilisateurs doivent saisir leurs informations d’identification à chaque fois.
Prérequis
- Autorisations :
- Disposez d’une autorisation d’accès et de modification de vos paramètres utilisateur dans lesquels les PAT sont gérés.
- Vérifier les autorisations : Pour vérifier vos autorisations, effectuez l’un des processus suivants dans Azure DevOps :
- Accédez à votre profil et sélectionnez Jetons d’accès personnels des paramètres>utilisateur. Si vous pouvez voir et gérer vos PAT ici, vous disposez des autorisations nécessaires.
- Accédez à votre projet et sélectionnez Autorisations des paramètres>du projet. Recherchez votre compte d’utilisateur dans la liste et vérifiez les autorisations qui vous sont attribuées. Recherchez les autorisations relatives à la gestion des jetons ou des paramètres utilisateur.
- Vérifier les autorisations : Pour vérifier vos autorisations, effectuez l’un des processus suivants dans Azure DevOps :
- Si votre organisation a des stratégies en place, un administrateur Azure DevOps peut avoir besoin d’accorder des autorisations spécifiques ou de vous ajouter à une liste d’autorisation pour créer et gérer des PAT.
- Les PAT sont associés au compte utilisateur ayant généré le jeton. Selon les tâches que le PAT effectue, il est possible que vous ayez vous-même besoin de plus d’autorisations.
- Disposez d’une autorisation d’accès et de modification de vos paramètres utilisateur dans lesquels les PAT sont gérés.
- Niveaux d’accès : disposez au moins d’un accès de base.
- Bonnes pratiques relatives à la sécurité : Familiarisez-vous avec les bonnes pratiques de sécurité pour la gestion des PAT. Utilisez-les uniquement lorsque c’est nécessaire et pensez à les renouveler régulièrement.
Créer un PAT
Connectez-vous à votre organisation (
https://dev.azure.com/{Your_Organization}
).À partir de votre page d’accueil, ouvrez les paramètres utilisateur et sélectionnez Jetons d’accès personnels.
Sélectionnez + Nouveau jeton.
Nommez votre jeton, sélectionnez l’organisation dans laquelle vous souhaitez utiliser le jeton, puis définissez votre jeton pour expirer automatiquement après un nombre défini de jours.
Sélectionnez les étendues de ce jeton pour autoriser vos tâches spécifiques.
Par exemple, pour créer un jeton pour un agent de génération et de mise en production pour s’authentifier auprès d’Azure DevOps, définissez l’étendue du jeton sur les pools d’agents (lecture et gestion). Pour lire les événements du journal d’audit et gérer ou supprimer des flux, sélectionnez Lire le journal d’audit, puis sélectionnez Créer.
Remarque
Vous pouvez être limité à la création de paTs à étendue complète. Dans ce cas, votre administrateur Azure DevOps dans Microsoft Entra ID a activé une stratégie qui vous limite à un ensemble d’étendues personnalisé spécifique. Pour plus d’informations, consultez Gérer les PAT avec des stratégies/Restreindre la création de paTs à étendue complète. Pour un PAT défini sur mesure, l’étendue requise pour accéder à l’API Gouvernance des composants n’est
vso.governance
pas sélectionnable dans l’interface utilisateur.Lorsque vous avez terminé, copiez le jeton et stockez-le dans un emplacement sécurisé. Pour votre sécurité, elle ne s’affiche pas à nouveau.
Utilisez votre PAT partout où vos informations d’identification utilisateur sont requises pour l’authentification dans Azure DevOps.
Important
- Traitez un mot de passe avec la même prudence que votre mot de passe et conservez-le confidentiel.
- Connectez-vous avec votre nouveau PAT dans un délai de 90 jours pour les organisations soutenues par l’ID Microsoft Entra ; sinon, le PAT devient inactif. Pour plus d’informations, consultez La fréquence de connexion utilisateur pour l’accès conditionnel.
Notifications
Pendant la durée de vie d’un PAT, les utilisateurs reçoivent deux notifications : la première au moment de la création et les sept jours avant son expiration.
Après avoir créé un PAT, vous recevez une notification similaire à l’exemple suivant. Cette notification sert de confirmation que votre PAT a été correctement ajouté à votre organisation.
L’image suivante montre un exemple de notification de sept jours avant l’expiration de votre PAT.
Pour plus d’informations, consultez Configurer un serveur SMTP et personnaliser l’e-mail pour les alertes et les demandes 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}
sur YourMachine » est créé lorsque vous vous connectez à un dépôt Git Azure DevOps via git.exe. - Un jeton nommé « Service Hooks : Azure App Service : : Déployer une application web » est créé lorsque vous ou un administrateur configurez un déploiement d’application web Azure App Service.
- Un jeton nommé « WebAppLoadTestCDIntToken » est créé lorsque le test de charge web est configuré dans le cadre d’un pipeline par vous ou un administrateur.
- Un jeton nommé « Intégration Microsoft Teams » est créé lorsqu’une extension de messagerie d’intégration Microsoft Teams est configurée.
Avertissement
- Révoquez le mot de passe si vous soupçonnez qu’il existe en erreur. Suivez les étapes pour révoquer le mot de passe et modifier votre mot de passe.
- Contactez votre administrateur si vous êtes un utilisateur Microsoft Entra pour voir si votre organisation a été sollicitée par une source ou un emplacement inconnu.
- Passez en revue le FAQ sur les archivages PAT accidentels dans les référentiels GitHub publics.
Utiliser un pat
Votre PAT sert d’identité numérique, comme un mot de passe. Les PAT peuvent être utilisés comme un moyen rapide d’effectuer des requêtes ponctuelles ou de créer un prototype d’application en local.
Important
Lorsque votre code fonctionne, c’est le bon moment pour passer de l’authentification de base à Microsoft Entra OAuth. Les jetons Microsoft Entra peuvent être utilisés partout où un PAT est utilisé, sauf indication contraire ci-dessous.
Vous pouvez utiliser un PAT dans votre code pour authentifier les requêtes des API REST et automatiser les workflows. Pour ce faire, incluez le PAT dans l’en-tête d’autorisation de vos requêtes HTTP.
Pour fournir le PAT via un en-tête HTTP, commencez par le convertir en chaîne Base64
. L’exemple suivant montre comment effectuer une conversion en Base64
C#.
Authorization: Basic BASE64_USERNAME_PAT_STRING
La chaîne résultante peut ensuite être fournie en tant qu’en-tête HTTP au format suivant.
L’exemple suivant utilise la classe HttpClient en C#.
public static async void GetBuilds()
{
try
{
var personalaccesstoken = "PATFROMWEB";
using (HttpClient client = new HttpClient())
{
client.DefaultRequestHeaders.Accept.Add(
new System.Net.Http.Headers.MediaTypeWithQualityHeaderValue("application/json"));
client.DefaultRequestHeaders.Authorization = new AuthenticationHeaderValue("Basic",
Convert.ToBase64String(
System.Text.ASCIIEncoding.ASCII.GetBytes(
string.Format("{0}:{1}", "", personalaccesstoken))));
using (HttpResponseMessage response = client.GetAsync(
"https://dev.azure.com/{organization}/{project}/_apis/build/builds?api-version=5.0").Result)
{
response.EnsureSuccessStatusCode();
string responseBody = await response.Content.ReadAsStringAsync();
Console.WriteLine(responseBody);
}
}
}
catch (Exception ex)
{
Console.WriteLine(ex.ToString());
}
}
Conseil
Lorsque vous utilisez des variables, ajoutez un $
au début de la chaîne, comme dans l’exemple suivant.
public static async void GetBuilds()
{
try
{
var personalaccesstoken = "PATFROMWEB";
using (HttpClient client = new HttpClient())
{
client.DefaultRequestHeaders.Accept.Add(
new System.Net.Http.Headers.MediaTypeWithQualityHeaderValue("application/json"));
client.DefaultRequestHeaders.Authorization = new AuthenticationHeaderValue("Basic",
Convert.ToBase64String(
System.Text.ASCIIEncoding.ASCII.GetBytes(
string.Format("{0}:{1}", "", personalaccesstoken))));
using (HttpResponseMessage response = client.GetAsync(
$"https://dev.azure.com/{organization}/{project}/_apis/build/builds?api-version=5.0").Result)
{
response.EnsureSuccessStatusCode();
string responseBody = await response.Content.ReadAsStringAsync();
Console.WriteLine(responseBody);
}
}
}
catch (Exception ex)
{
Console.WriteLine(ex.ToString());
}
}
Vous trouverez d’autres exemples de l’utilisation des PAT dans les articles suivants :
- S’authentifier auprès de vos référentiels Git
- Configurer des gestionnaires d’informations d’identification Git (GCM) pour se connecter à des référentiels Git
- Utiliser NuGet sur un Mac
- Authentifier les clients de création de rapports
- Prise en main d’Azure DevOps CLI
Modifier un PAT
Effectuez les étapes suivantes pour :
- Régénérez un pater pour créer un jeton, ce qui invalide la précédente.
- Étendre un PAT pour augmenter sa période de validité.
- Modifiez l’étendue d’un PAT pour modifier ses autorisations.
Dans votre page d’accueil, ouvrez vos paramètres utilisateur, puis sélectionnez Profil.
Sous Sécurité, sélectionnez Jetons d’accès personnels. Sélectionnez le jeton que vous souhaitez modifier, puis modifiez.
Modifiez le nom du jeton, l’expiration du jeton ou l’étendue de l’accès associé au jeton, puis sélectionnez Enregistrer.
Révoquer un PAT
Vous pouvez révoquer un pat à tout moment pour ces raisons et pour d’autres raisons :
- Révoquez un pat si vous soupçonnez qu’il est compromis.
- Révoquez un pat lorsqu’il n’est plus nécessaire.
- Révoquez un pater pour appliquer des stratégies de sécurité ou des exigences de conformité.
Dans votre page d’accueil, ouvrez vos paramètres utilisateur, puis sélectionnez Profil.
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.
Sélectionnez Révoquer dans la boîte de dialogue de confirmation.
Pour plus d’informations, consultez Révoquer les PAT utilisateur pour les administrateurs.
Modifications apportées au format
À compter de juillet 2024, nous avons considérablement modifié le format des PAT émis par Azure DevOps. Ces modifications offrent davantage d'avantages en matière de sécurité et améliorent l'outil de détection des secrets disponible grâce à notre outil de détection des PAT qui a fait l'objet d'une fuite ou aux offres de nos partenaires. Ce nouveau format PAT suit le format recommandé pour tous les produits Microsoft. L’inclusion de bits plus identifiables améliore le taux de détection faux positifs de ces outils de détection secrète et nous permet d’atténuer les fuites détectées plus rapidement.
Modifications clés :
- Longueur accrue du jeton : les nouveaux jetons sont désormais de 84 caractères, avec 52 caractères étant des données aléatoires. Cette longueur accrue améliore l’entropie globale, ce qui rend les jetons plus résistants aux attaques potentielles par force brute.
- Signature fixe : Les jetons émis par notre service incluent une signature fixe
AZDO
aux positions 76-80.
Action nécessaire :
- Régénérer les PAT existants : nous vous recommandons vivement de régénérer tous les PAT actuellement utilisés pour tirer parti de ces améliorations de sécurité.
- Prise en charge de l’intégrateur : les intégrateurs doivent mettre à jour leurs systèmes pour prendre en charge les longueurs de jeton nouvelles et existantes.
Important
Les deux formats restent valides pour un avenir prévisible, mais nous encourageons activement les clients à passer au nouveau format de 84 caractères. À mesure que l’adoption du nouveau format augmente, nous envisageons de mettre hors service le format de 52 caractères plus ancien et tous les jetons émis dans ce style.
Meilleures pratiques pour le PAT
Envisager des alternatives
- Pour les requêtes ponctuelles, faites l’acquisition d’un jeton Entra via Azure CLI valable une heure, plutôt que de générer un PAT de plus longue durée.
- Utilisez des gestionnaires d’informations d’identification, comme Git Credential Manager ou le Gestionnaire d’informations d’identification Azure Artifacts, dès que possible pour simplifier la gestion des informations d’identification. Ces outils peuvent proposer des options pour utiliser des jetons Microsoft Entra comme mécanisme d’authentification par défaut à la place des PAT.
Créer des PATs
- Lors de la création d'un PAT, n'incluez aucune information d'identification personnelle (PII) dans le nom du PAT. Ne renommez pas la chaîne du jeton PAT en tant que nom de votre jeton.
- Si votre PAT n’a pas besoin d’accéder à plusieurs organisations, choisissez uniquement l’organisation à laquelle il doit accéder. Si vous avez un flux de travail qui requiert un PAT pour accéder à plusieurs organisations, créez un PAT global distinct uniquement pour ce flux de travail.
- Choisissez uniquement les champs d'application nécessaires pour chaque PAT. Si possible, créez plusieurs PAT pour chaque flux de travail avec moins d’étendues, plutôt qu’un seul PAT entièrement étendu. Si votre PAT n’a besoin que d’autorisations en lecture, ne lui octroyez pas d’autorisations en écriture tant que ce n’est pas nécessaire.
- Conservez les durées de vie des PAT courtes (hebdomadaire est idéal, encore plus courtes sont préférables) et renouvez-les ou régénérez-les régulièrement. Procédez ainsi sur l’interface utilisateur ou via les API de gestion du cycle de vie PAT .
Gestion des PAT
- ALWAYS stockez vos PATs dans une solution de gestion de clés sécurisée, comme Azure KeyVault .
- Révoquez les PAT lorsqu’ils ne sont plus nécessaires. Les administrateurs des locataires peuvent révoquer les PAT pour les utilisateurs de leur organisation si le PAT est compromis.
- 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 des locataires peuvent définir des stratégies pour restreindre la création de PAT globaux, la création de PAT à portée complète et la durée des PAT à longue durée de vie. Ils peuvent également permettre aux stratégies de révoquer automatiquement les PAT divulguées détectées dans les référentiels publics. Utilisez ces stratégies pour améliorer la sécurité de votre entreprise.
FAQ
Q : Pourquoi ne puis-je pas modifier ou régénérer un pat étendu à une seule organisation ?
R : Vérifiez que vous êtes connecté à l’organisation où votre PAT est étendu. Vous pouvez afficher tous vos PAT lors de la connexion à n’importe quelle organisation dans le même ID Microsoft Entra, mais vous ne pouvez modifier que les jetons d’étendue de l’organisation lorsque vous êtes connecté à l’organisation à laquelle elles sont étendues.
Q : Que se passe-t-il à un pater si un compte d’utilisateur est désactivé ?
R : Lorsqu’un utilisateur est supprimé d’Azure DevOps, le pat invalide dans un délai de 1 heure. Si votre organisation est connectée à l’ID Microsoft Entra, le PAT invalide également l’ID Microsoft Entra, car il appartient à l’utilisateur. Nous vous recommandons de faire pivoter le PAT vers un autre compte d’utilisateur ou de service pour maintenir l’exécution des services.
Q : Existe-t-il un moyen de renouveler un PAT via l’API REST ?
R : Oui, il existe un moyen de renouveler, de gérer et de créer des PAT à l’aide de nos API de gestion du cycle de vie PAT.
Q: Puis-je utiliser des PAT avec toutes les API REST Azure DevOps ?
R : Non. Vous pouvez utiliser l'authentification de base avec la plupart des API REST de support Azure DevOps, mais les organisations et les profils ainsi que les API de cycle de vie de gestion des PAT) ne prennent en charge que Microsoft Entra OAuth. Pour un exemple sur la configuration d’une application Entra permettant d’appeler ces API, veuillez la documentation concernant la gestion des PAT à l’aide de l’API REST.
Q : Que se passe-t-il si je vérifie accidentellement mon PAT dans un dépôt public sur GitHub ?
R : Azure DevOps analyse les paTs archivés dans des référentiels publics sur GitHub. Lorsque nous trouvons un jeton divulguée, nous envoyons immédiatement une notification par e-mail détaillée au propriétaire du jeton et journalisons un événement dans le journal d’audit de votre organisation Azure DevOps. Sauf si vous avez désactivé la stratégie de jetons d’accès personnels supprimés automatiquement, nous révoquez immédiatement le mot de passe divulguée. Nous encourageons les utilisateurs affectés à atténuer le problème en révoquant le jeton fuite et en le remplaçant par un nouveau jeton.
Pour plus d’informations, consultez Révoquer automatiquement les PAT divulguées.
Q : Puis-je utiliser un jeton d’accès personnel comme ApiKey pour publier des packages NuGet sur un flux Azure Artifacts à l’aide de la ligne de commande dotnet/nuget.exe ?
R : Non. Azure Artifacts ne prend pas en charge la transmission d’un jeton d’accès personnel en tant que ApiKey. Lorsque vous utilisez un environnement de développement local, nous vous 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 d’authentification NuGet pour vous authentifier avec votre exemple de flux.
Q : Pourquoi mon PAT a-t-il cessé de fonctionner ?
R : L’authentification PAT vous oblige à vous connecter régulièrement à Azure DevOps à l’aide du flux d’authentification complet. La connexion une fois toutes les 30 jours est suffisante pour de nombreux utilisateurs, mais vous devrez peut-être vous connecter plus fréquemment en fonction de votre configuration Microsoft Entra. Si votre PAT cesse de fonctionner, commencez par vous connecter à votre organisation et terminez l’invite d’authentification complète. Si votre PAT ne fonctionne toujours pas, vérifiez s’il a expiré.
Voici quelques raisons expliquant l’échec potentiel des PAT :
- L’activation de l’authentification de base IIS annule l’utilisation des PAT pour Azure DevOps Server : veuillez consulter la section Utiliser l’authentification de base IIS avec Azure DevOps local.
Q : Comment faire créer des clés d’accès qui ne sont pas liées à une personne spécifique à des fins de déploiement ?
R : Dans Azure DevOps, vous pouvez créer des clés d’accès qui ne sont pas liées à une personne spécifique à l’aide de principaux de service ou de gestion des identités. Pour plus d’informations, consultez Gérer les connexions de service, utiliser les secrets Azure Key Vault dans Azure Pipelines.
::: moniker-end
Articles connexes
- En savoir plus sur la sécurité, l’authentification et l’autorisation
- Passer en revue les autorisations et l’accès par défaut pour Azure DevOps
- Gérer les jetons d’accès personnels (PAT) à l’aide de l’API REST
- Révoquer des PAT utilisateur (pour les administrateurs)
- Gérer les principaux de service et les identités managées dans Azure DevOps
- Utiliser des stratégies pour gérer les jetons d’accès personnels pour les utilisateurs