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. Par conséquent, traitez les PAT avec la même prudence que les mots de passe.
Importante
Nous vous recommandons d’utiliser les jetons Microsoft Entra . Pour plus d'informations sur nos efforts pour réduire l'utilisation de PAT, consultez notre blog. Examinez nos consignes d’authentification pour choisir le mécanisme d’authentification adapté à vos besoins.
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 ne souhaitez pas partager vos informations d'identification principales, les PAT peuvent constituer une alternative appropriée. Cependant, nous recommandons d'utiliser les tokens Microsoft Entra plutôt que les PAT lorsque cela est possible.
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.
Prerequisites
Category | Spécifications |
---|---|
Permissions | 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 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 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 | N'utilisez les PAT qu'en cas de nécessité et procédez toujours à une rotation régulière. |
Créer une carte 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 l'utiliser, puis paramétrez votre jeton pour qu'il expire automatiquement au bout d'un certain nombre de jours.
Sélectionnez les étendues de ce jeton à autoriser 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.
Note
Il se peut que vous ne puissiez pas créer de PAT à étendue complète. Si c'est le cas, votre administrateur Azure DevOps dans Microsoft Entra ID a activé une stratégie qui vous limite à un ensemble spécifique d'étendues définies sur mesure. Pour plus d'informations, voir Gérer les PAT avec des stratégies/Création restreinte de PAT à portée intégrale. Pour un PAT personnalisé, l'étendue requise pour accéder à l'API de gouvernance des composants,
vso.governance
, ne peut pas être sélectionnée dans l'interface utilisateur.Lorsque vous avez terminé, copiez le jeton et stockez-le dans un emplacement sécurisé. Pour votre sécurité, il ne s'affiche plus.
Utilisez votre PAT partout où vos informations d'identification sont requises pour l'authentification dans Azure DevOps.
Importante
- Traitez votre PAT avec la même prudence que votre mot de passe et gardez-le confidentiel.
- Connectez-vous avec votre nouveau PAT dans les 90 jours pour les organisations soutenues par Microsoft Entra ID ; sinon, le PAT devient inactif. Pour plus d'informations, reportez-vous à la section Fréquence de connexion de l'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 la seconde sept jours avant son expiration.
Après avoir créé un PAT, vous recevez une notification similaire à l'exemple suivant. Cette notification confirme que votre PAT a été ajouté avec succès à votre organisation.
L'image suivante montre un exemple de notification sept jours avant l'expiration de votre PAT.
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.
Warning
- 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.
Importante
Lorsque votre code fonctionne, c’est le bon moment pour passer de l’authentification de base à Microsoft Entra OAuth. Vous pouvez utiliser des jetons Microsoft Entra ID partout où un PAT est utilisé, sauf indication contraire dans cet article.
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 par le biais d'un en-tête HTTP, commencez par le convertir en chaîne de caractères Base64
L'exemple suivant montre comment convertir en Base64
à l'aide de C#.
Authorization: Basic BASE64_USERNAME_PAT_STRING
La chaîne obtenue peut ensuite être fournie en tant qu'en-tête HTTP dans le 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 reporting
- Bien démarrer avec Azure DevOps CLI
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.
À partir de votre page d'accueil, ouvrez vos paramètres d'utilisateur, puis sélectionnez Profil.
Sous Sécurité, sélectionnez Jetons d'accès personnels. Sélectionnez le jeton que vous souhaitez modifier, puis cliquez sur Modifier.
Modifiez le nom du jeton, son expiration 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 d'autres encore :
- Révoquez un PAT si vous soupçonnez qu’il est compromis.
- Révoquer 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é.
À partir de votre page d'accueil, ouvrez vos paramètres d'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, voir Révoquer les PAT des utilisateurs pour les administrateurs.
Modifications du 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 de PAT suit le format recommandé pour tous les produits Microsoft. L'inclusion de plus de bits identifiables améliore le taux de détection de faux positifs de ces outils de détection de secrets et nous permet d'atténuer plus rapidement les fuites détectées.
Principaux changements :
- Augmentation de la longueur des jetons : Les nouveaux jetons ont désormais une longueur de 84 caractères, dont 52 sont 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 comprennent une signature
AZDO
fixe aux positions 76-80.
Action demandée :
- Régénérez les PAT existants : Nous vous recommandons vivement de régénérer tous les PAT actuellement utilisés afin de tirer parti de ces améliorations en matière de sécurité.
- Soutien des intégrateurs : Les intégrateurs doivent mettre à jour leurs systèmes pour prendre en compte les longueurs de jetons nouvelles et existantes.
Importante
Les deux formats restent valables dans un avenir proche, mais nous encourageons activement les clients à passer au nouveau format de 84 caractères. Au fur et à mesure de l'adoption du nouveau format, nous envisageons de mettre hors service l'ancien format de 52 caractères et tous les jetons émis dans ce style.
Meilleures pratiques pour l'utilisation des PATs
Envisagez des alternatives
- Faites l'acquisition d'un token Microsoft Entra via Azure CLI pour les requêtes ad hoc qui durent une heure au lieu de créer un PAT à durée de vie plus longue.
- Utilisez des gestionnaires de certificats comme Git Credential Manager ou Azure Artifacts Credential Manager pour simplifier la gestion des certificats. Ces outils pourraient offrir des alternatives pour utiliser les jetons Microsoft Entra comme authentification par défaut au lieu des PAT.
Création de PAT
- Évitez d'inclure des données personnelles dans le nom du PAT. Ne renommez pas la chaîne du jeton PAT en tant que nom de votre jeton.
- Sélectionnez uniquement l'organisation à laquelle votre PAT doit accéder s'il n'a pas besoin d'accéder à plusieurs organisations. Pour les workflows nécessitant un accès à plusieurs organisations, créez un PAT global distinct pour ce workflow.
- Choisissez uniquement les étendues nécessaires pour chaque PAT. Si possible, créez plusieurs PAT pour chaque workflow avec moins d'étendues au lieu d'un seul PAT à portée complète. Si votre PAT n'a besoin que de permissions de lecture, ne lui donnez pas de permissions d'écriture tant que cela n'est pas nécessaire.
- Conservez les durées de vie des PAT courtes (idéalement chaque semaine, encore mieux si c'est plus court) et faites-les tourner ou régénérez-les régulièrement via l’interface utilisateur ou les API de Gestion du Cycle de Vie PAT .
Gestion des PAT
- Toujours 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.
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 étendu. Vous pouvez afficher tous vos jetons d'accès personnels (PAT) en étant connecté à n'importe quelle organisation dans le même ID Microsoft Entra, mais vous ne pouvez modifier que les jetons liés à l'organisation lorsque vous êtes connecté à l'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 : Existe-t-il un moyen de renouveler un PAT via l'API REST ?
R : Oui, vous pouvez renouveler, gérer et créer des PAT à l'aide de nos API de gestion du cycle de vie des PAT.
Q: Puis-je utiliser des PAT avec toutes les API REST Azure DevOps ?
A : Non. Vous pouvez utiliser l'authentification basique avec la plupart des API REST Azure DevOps, mais les organisations et profils et les API de gestion du cycle de vie des PAT ne supportent que Microsoft Entra OAuth. Pour un exemple sur la façon de configurer une application Microsoft Entra pour appeler de telles API, voir Gérer les PAT à l'aide de l'API REST.
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. À 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. 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. 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. Pour plus d'informations, consultez la section Utilisation de l'authentification de base IIS avec Azure DevOps au niveau local.
Q : Comment puis-je 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 en utilisant les Principaux de service ou les Identités gérées. Pour plus d'informations, voir Gérer les connexions de service et Utiliser les secrets de Key Vault d'Azure dans Azure Pipelines.
Articles connexes
- Utiliser des stratégies pour gérer les jetons d’accès personnels pour les utilisateurs
- Révoquer les PAT des utilisateurs (pour les administrateurs)
- En savoir plus sur la sécurité, l'authentification et l'autorisation
- Examinez les permissions et les accès par défaut pour Azure DevOps
- Gérer les jetons d’accès personnels (PAT) à l’aide de l’API REST
- Gérer les principes de service et les identités gérées dans Azure DevOps