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) peut servir de mot de passe alternatif pour l’authentification dans Azure DevOps. Cet article vous guide tout au long du processus de création, d’utilisation, de modification et de révocation de PAT pour Azure DevOps.
À propos des PAT
Un jeton d’accès personnel (PAT) sert d’informations d’identification de sécurité pour Azure DevOps. Ce PAT vous identifie non seulement, mais détermine également votre accessibilité et votre étendue d’accès. Par conséquent, les PAT sont aussi importants que les mots de passe et doivent être gérés avec le même niveau de prudence.
Si vous utilisez des outils Microsoft, votre compte Microsoft (MSA) ou microsoft Entra ID est une méthode reconnue et prise en charge. Toutefois, si vous utilisez des outils tiers qui ne prennent pas en charge les comptes Microsoft ou Microsoft Entra, ou si vous hésitez à partager vos informations d’identification principales avec ces outils, les PAT constituent une alternative plus sûre.
Créez et gérez des PAT de deux façons :
- Interface utilisateur : via les paramètres utilisateur, comme indiqué dans cet article
- API de gestion du cycle de vie PAT
Pour établir des PAT pour les outils non-Microsoft, vous pouvez utiliser des gestionnaires d’informations d’identification Git ou les générer manuellement. Nous vous recommandons de consulter nos conseils d’authentification pour vous aider à choisir le mécanisme d’authentification approprié. Les PAT servent d’alternative simple pour les projets plus petits qui n’ont pas besoin d’une solution étendue. Sauf si un gestionnaire d’informations d’identification est en cours d’utilisation, les utilisateurs doivent entrer leurs informations d’identification à chaque fois.
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 permettre à un agent de build et de mise en production de s’authentifier auprès d’Azure DevOps, limitez l’étendue de votre jeton aux pools d’agents (lecture et gestion). Pour lire les événements du journal d’audit et gérer et 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 défini 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 personnalisé, 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
- Gérez un mot de passe avec la même prudence que votre mot de passe et conservez-le un secret.
- Pour les organisations soutenues par l’ID Microsoft Entra, il est nécessaire de se connecter avec votre nouveau PAT dans un délai de 90 jours ; l’échec de cette opération restitue le pat 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 la deuxième 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éé lorsqu’un déploiement d’application web Azure App Service est configuré par vous ou un administrateur.
- 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
Si vous pensez qu’un pater existe en erreur, envisagez de révoquer le mot de passe et de modifier votre mot de passe. En tant qu’utilisateur Microsoft Entra, contactez votre administrateur pour voir si votre organisation a été utilisée par une source ou un emplacement inconnu. Reportez-vous également au FAQ sur les archivages pat accidentelles vers les dépôts GitHub publics.
Utiliser un pat
Votre PAT sert d’identité numérique, qui vous représente lorsqu’elle est utilisée, comme un mot de passe.
Git
Les interactions Git nécessitent un nom d’utilisateur, qui peut être tout sauf la chaîne vide.
Pour utiliser un protocole PAT avec l’authentification de base HTTP, utilisez Base64-encode
pour $MyPat
, qui est inclus dans le bloc de code suivant.
Dans PowerShell, entrez le code suivant.
$MyPat = 'yourPat'
$headerValue = "Authorization: Basic " + [Convert]::ToBase64String([System.Text.Encoding]::UTF8.GetBytes(":" + $MyPat))
$env:GIT_AUTH_HEADER = $headerValue
git --config-env=http.extraheader=GIT_AUTH_HEADER clone https://dev.azure.com/yourOrgName/yourProjectName/_git/yourRepoName
Pour sécuriser votre jeton, utilisez des gestionnaires d’informations d’identification afin de ne pas avoir à entrer vos informations d’identification à chaque fois. Nous vous recommandons git Credential Manager. Git pour Windows est requis.
Dépôts existants
Pour les référentiels existants, si vous avez déjà ajouté l’origine à l’aide du nom d’utilisateur, exécutez d’abord la commande suivante.
git remote remove origin
Sinon, exécutez la commande suivante.
git remote add origin https://dev.azure.com/<PAT>@<company_machineName>:/<path-to-git-repo> path to git repo = <project name>/_git/<repo_name> git push -u origin --all
Utiliser un pater dans votre code
Vous pouvez utiliser un pater dans votre code.
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());
}
}
Lorsque votre code fonctionne, il est judicieux de passer de l’authentification de base à OAuth.
Pour plus d’informations et des exemples d’utilisation des PAT, consultez les articles suivants :
- Gestionnaires d’informations d’identification Git
- API REST
- NuGet sur un Mac
- Clients de création de rapports
- Prise en main d’Azure DevOps CLI
Modifier un PAT
Vous pouvez régénérer, étendre un pater ou modifier son étendue. Une fois régénéré, le PAT précédent devient non autorisé.
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 de nombreuses raisons.
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 apporté des modifications significatives au format des PAT émis par Azure DevOps. Ces modifications offrent davantage d’avantages en matière de sécurité et améliorent les outils de détection des secrets disponibles via nos offres partenaires, telles que GitHub Advanced Security pour Azure DevOps. Cette modification du format PAT suit le nouveau format recommandé pour tous les produits Microsoft. Nous prévoyons que 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 de jeton accrue : les nouveaux jetons sont plus longs, maintenant 84 caractères au total. En dehors de ces données, 52 caractères 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 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.
À mesure que les deux formats restent valides pour un avenir prévisible, 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.
Articles connexes
- À propos de la sécurité, de l’authentification et de l’autorisation
- Autorisations et accès par défaut pour Azure DevOps
- Révoquer des PAT utilisateur (pour les administrateurs)
- Gérer les principaux de service et les identités managées dans Azure DevOps
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 : Une fois qu’un utilisateur a été supprimé d’Azure DevOps, le PAT est invalidé dans un délai de 1 heure. Si votre organisation est connectée à l’ID Microsoft Entra, le pat est également invalidé dans l’ID Microsoft Entra, car il appartient à l’utilisateur. Nous vous recommandons de faire pivoter son 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. Pour plus d’informations, consultez Gérer les PAT à l’aide de l’API REST et de notre FAQ.
Q : Puis-je utiliser l’authentification de base avec toutes les API REST Azure DevOps ?
R : Non. Vous pouvez utiliser l’authentification de base avec la plupart des API REST Azure DevOps, mais les organisations et les profils prennent uniquement en charge OAuth. Pour plus d’informations, consultez Gérer les 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 immédiatement 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. Une fois toutes les 30 jours suffisantes pour plusieurs, mais vous devrez peut-être vous connecter plus souvent que cela en fonction de votre configuration Microsoft Entra. Si votre PAT cesse de fonctionner, essayez d’abord de vous connecter à votre organisation, en vous assurant que vous passez par l’invite d’authentification complète. Si votre PAT ne fonctionne toujours pas après cela, vérifiez si votre PAT a expiré.
Commentaires
https://aka.ms/ContentUserFeedback.
Bientôt disponible : Tout au long de l’année 2024, nous abandonnerons progressivement le mécanisme de retour d’information GitHub Issues pour le remplacer par un nouveau système de commentaires. Pour plus d’informations, consultez :Soumettre et afficher des commentaires pour