Utiliser des jetons d’accès personnels

Azure DevOps Services | Azure DevOps Server 2022 - Azure DevOps Server 2019 | TFS 2018

Vous pouvez utiliser un jeton d’accès personnel (PAT) comme autre mot de passe pour vous authentifier dans Azure DevOps. Dans cet article, nous vous montrons comment créer, utiliser, modifier et révoquer des PAT pour Azure DevOps.

La vidéo suivante vous montre comment créer et utiliser un PAT.

À propos des PAT

Un jeton d’accès personnel contient vos informations d’identification de sécurité pour Azure DevOps. Un PAT vous identifie, vos organisations accessibles et les étendues d’accès. Par conséquent, elles sont aussi critiques que les mots de passe. Vous devez donc les traiter de la même façon.

Si vous travaillez avec des outils Microsoft, votre compte Microsoft (MSA) ou Microsoft Entra ID est une approche acceptable et bien prise en charge. Toutefois, si vous travaillez avec des outils tiers qui ne prennent pas en charge les comptes Microsoft ou Microsoft Entra, ou si vous ne souhaitez pas fournir vos informations d’identification principales à l’outil, utilisez des PAT pour limiter vos risques.

Vous pouvez créer et gérer vos PAT de l’une des manières suivantes :

  • l’interface utilisateur dans vos paramètres utilisateur, qui est décrite en détail dans cet article
  • via l’API de gestion du cycle de vie PAT

Pour configurer des PAT pour les outils non-Microsoft, utilisez des gestionnaires d’informations d’identification Git ou créez-les manuellement. Nous vous recommandons de consulter nos conseils d’authentification pour vous aider à choisir le mécanisme d’authentification approprié. Pour les projets plus petits qui nécessitent une solution moins robuste, les PAT sont une alternative simple. Sauf si vos utilisateurs utilisent un gestionnaire d’informations d’identification, ils doivent entrer leurs informations d’identification chaque fois.

Créer un PAT

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

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

    Screenshot showing selection, Personal Access Tokens.

  3. Sélectionnez + Nouveau jeton.

    Screenshot showing selection, New Token.

  4. 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.

    Screenshot showing entry of basic token information.

  5. 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 Services, 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.

    Screenshot showing selected scopes for a PAT.

    Remarque

    Vous pouvez être limité à la création de PAT complets. Dans ce cas, votre administrateur Azure DevOps dans Microsoft Entra ID a activé une stratégie qui vous limite à un ensemble personnalisé spécifique d’étendues définies. 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.governancepas sélectionnable dans l’interface utilisateur.

  6. 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.

    Screenshot showing how to copy the token to your clipboard.

Avertissement

Traitez et utilisez un jeton d’accès personnel (PAT) comme votre mot de passe, et ne le divulguez pas.

  1. Connectez-vous à votre portail web (https://{server}:8080/tfs/).

  2. Ouvrez votre profil à partir de votre page d’accueil. Accédez à vos détails de sécurité.

Screenshot showing home page, opening your profile, and the Security button.

  1. Créez un jeton d’accès personnel.

Screenshot showing adding a personal access token.

  1. Nommez votre jeton. Sélectionnez une durée de vie pour votre jeton.

    Si vous avez plusieurs organisations, vous pouvez également sélectionner l’organisation dans laquelle vous souhaitez utiliser le jeton.

    Screenshot showing information entry, including token name and lifespan.

  2. 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, limitez l’étendue de votre jeton aux pools d’agents (lecture, gestion) .

  3. Lorsque vous avez terminé, veillez à copier le jeton. Pour votre sécurité, elle ne s’affiche pas à nouveau. Utilisez ce jeton comme mot de passe. Sélectionnez Fermer.

    Screenshot showing created token.

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

Important

Pour les organisations soutenues par l’ID Microsoft Entra, vous avez 90 jours pour vous connecter avec votre nouveau PAT, sinon il est considéré comme inactif. Pour plus d’informations, consultez La fréquence de connexion utilisateur pour l’accès conditionnel.

Notifications

Les utilisateurs reçoivent deux notifications pendant la durée de vie d’un PAT : une lors de la création et les sept autres jours avant l’expiration.

Après avoir créé un PAT, vous recevez une notification similaire à l’exemple suivant. Cette notification confirme que votre pater a été ajouté à votre organisation.

Screenshot showing PAT created notification.

L’image suivante montre un exemple de notification de sept jours avant l’expiration de votre PAT.

Screenshot showing PAT near expiration notification.

Notification inattendue

Si vous recevez une notification PAT inattendue, un administrateur ou un outil a peut-être créé un PAT en votre nom. Regardez les exemples suivants.

  • Lorsque vous vous connectez à un dépôt Git Azure DevOps via git.exe. il crée un jeton avec un nom d’affichage tel que « git : https://MyOrganization.visualstudio.com/ sur MyMachine ».
  • Lorsque vous ou un administrateur configurez un déploiement d’application web Azure App Service, il crée un jeton avec un nom complet tel que « Service Hooks : : Azure App Service : : Déployer une application web ».
  • Lorsque vous ou un administrateur configurez des tests de charge web dans le cadre d’un pipeline, il crée un jeton avec un nom complet tel que « WebAppLoadTestCDIntToken ».
  • Lorsqu’une extension de messagerie d’intégration Microsoft Teams est configurée, elle crée un jeton avec un nom d’affichage tel que « Intégration Microsoft Teams ».

Avertissement

Si vous pensez qu’un pat existe en erreur, nous vous suggérons de révoquer le PAT. Ensuite, modifiez votre mot de passe. En tant qu’utilisateur Microsoft Entra, case activée avec votre administrateur pour voir si votre organisation a été utilisée à partir d’une source ou d’un emplacement inconnu. Consultez également le FORUM aux questions sur la case activée accidentellement dans un dépôt GitHub public.

Utiliser un pat

Votre pater est votre identité et vous représente lorsque vous l’utilisez, 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 et $MyPat, qui est inclus dans le bloc de code suivant.

Dans PowerShell, entrez le code suivant.

$MyPat = 'yourPAT'

$B64Pat = [Convert]::ToBase64String([System.Text.Encoding]::UTF8.GetBytes("`:$MyPat"))

git -c http.extraHeader="Authorization: Basic $B64Pat" 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://<PAT>@<company_machineName>.visualstudio.com:/<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.

Si vous souhaitez fournir le mot de passe par le biais d’un en-tête HTTP, commencez par le convertir en chaîne Base64. L’exemple suivant montre comment effectuer une conversion en Base64 à l’aide de 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 :

Si vous activez l’authentification de base IIS, les paT ne sont pas valides. Pour plus d’informations, consultez Utilisation de l’authentification de base IIS localement.

Modifier un PAT

Vous pouvez régénérer ou étendre un PAT et modifier son étendue. Après régénération, le PAT précédent n’est plus autorisé.

  1. Dans votre page d’accueil, ouvrez vos paramètres utilisateur, puis sélectionnez Profil.

    Screenshot showing sequence of buttons to select to modify a PAT.

  2. Sous Sécurité, sélectionnez Jetons d’accès personnels. Sélectionnez le jeton que vous souhaitez modifier, puis modifiez.

    Screenshot showing highlighted Edit button to modify PAT.

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

    Screenshot showing modified PAT.

Révoquer un PAT

Vous pouvez révoquer un PAT à tout moment, pour différentes raisons.

  1. Dans votre page d’accueil, ouvrez vos paramètres utilisateur, puis sélectionnez Profil.

    Screenshot showing sequence of buttons to select, Team Services, Preview page, and revoke a PAT.

  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.

    Screenshot showing selection to revoke a single token or all tokens.

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

    Screenshot showing confirmation screen to revoke PAT.

FAQ

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 j’ai accidentellement case activée mon PAT dans un dépôt public sur GitHub ?

R : Azure DevOps analyse les paTs case activée 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 de nombreux, 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, case activée pour voir si votre PAT a expiré.