Persoonlijke toegangstokens gebruiken

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

U kunt een persoonlijk toegangstoken (PAT) gebruiken als alternatief wachtwoord voor verificatie bij Azure DevOps. In dit artikel leert u hoe u PAT's voor Azure DevOps maakt, gebruikt, wijzigt en intrekt.

In de volgende video ziet u hoe u een PAT maakt en gebruikt.

Informatie over PAT's (persoonlijke toegangstokens)

Een persoonlijk toegangstoken bevat uw beveiligingsreferenties voor Azure DevOps. Een PAT identificeert u, de organisaties die voor u toegankelijk zijn en toegangsbereiken. Ze zijn daarom net zo essentieel als wachtwoorden, dus u moet ze op dezelfde manier behandelen.

Als u in Microsoft-hulpprogramma's werkt, is uw Microsoft-account (MSA) of Microsoft Entra ID-account een acceptabele en goed ondersteunde oplossing. Maar als u werkt met hulpprogramma's van derden die geen ondersteuning bieden voor Microsoft- of Microsoft Entra-accounts, of als u uw primaire referenties niet wilt opgeven voor het hulpprogramma, kunt u PAT's gebruiken om uw risico te beperken.

U kunt uw PAT's op een van de volgende manieren maken en beheren:

  • de gebruikersinterface in uw gebruikersinstellingen, die in dit artikel gedetailleerd wordt beschreven
  • via de PAT Lifecycle Management-API

Als u PAT's wilt instellen voor niet-Microsoft-hulpprogramma's, gebruikt u Git-referentiebeheerders of maakt u ze handmatig. We raden u aan onze verificatierichtlijnen te bekijken om u te helpen het juiste verificatiemechanisme te kiezen. Voor kleinere projecten waarvoor een minder krachtige oplossing vereist is, zijn PAT's een eenvoudig alternatief. Tenzij uw gebruikers een referentiebeheertool gebruiken, moeten ze elke keer hun referenties invoeren.

Een PAT maken

  1. Meld u aan bij uw organisatie (https://dev.azure.com/{yourorganization}).

  2. Open op de startpagina de gebruikersinstellingen en selecteer Persoonlijke toegangstokens.

    Schermopname van selectie, Persoonlijke toegangstokens.

  3. Selecteer + Nieuw token.

    Schermopname van selectie, Nieuw token.

  4. Geef uw token een naam, selecteer de organisatie waar u het token wilt gebruiken en stel vervolgens uw token in op automatisch verlopen na een bepaald aantal dagen.

    Schermopname van het invoeren van basistokengegevens.

  5. Selecteer de bereiken voor dit token om uw specifieke taken te autoriseren.

    Als u bijvoorbeeld een token wilt maken om een build- en releaseagent in te schakelen voor verificatie bij Azure DevOps Services, beperkt u het bereik van uw token tot agentgroepen (lezen en beheren). Als u auditlogboekgebeurtenissen wilt lezen en streams wilt beheren en verwijderen, selecteert u Auditlogboek lezen en selecteert u Vervolgens Maken.

    Schermopname van geselecteerde bereiken voor een PAT.

    Notitie

    Mogelijk kunt u geen PAT's met een volledig bereik maken. Zo ja, dan heeft uw Azure DevOps-beheerder in Microsoft Entra ID een beleid ingeschakeld dat u beperkt tot een specifieke, aangepaste set bereiken. Zie PAT's beheren met beleidsregels/Het maken van volledige PAT's beperken voor meer informatie. Voor een aangepast gedefinieerde PAT is het vereiste bereik voor toegang tot de Component Governance-API vso.governanceniet te selecteren in de gebruikersinterface.

  6. Wanneer u klaar bent, kopieert u het token en slaat u het op een veilige locatie op. Voor uw beveiliging wordt deze niet opnieuw weergegeven.

    Schermopname van het kopiëren van het token naar het Klembord.

Waarschuwing

Behandel en gebruik een PAT zoals uw wachtwoord en bewaar het geheim.

Gebruik uw PAT overal waar uw gebruikersreferenties zijn vereist voor verificatie in Azure DevOps.

Belangrijk

Voor organisaties die worden ondersteund door Microsoft Entra ID, hebt u 90 dagen de tijd om u aan te melden met uw nieuwe PAT, anders wordt deze beschouwd als inactief. Zie De aanmeldingsfrequentie van gebruikers voor voorwaardelijke toegang voor meer informatie.

Meldingen

Gebruikers ontvangen twee meldingen tijdens de levensduur van een PAT: één na het maken en de andere zeven dagen vóór de vervaldatum.

Nadat u een PAT hebt gemaakt, ontvangt u een melding die vergelijkbaar is met het volgende voorbeeld. Deze melding bevestigt dat uw PAT is toegevoegd aan uw organisatie.

Schermopname van een door PAT gemaakte melding.

In de volgende afbeelding ziet u een voorbeeld van de melding van zeven dagen voordat uw PAT verloopt.

Schermopname van pat bijna verlopen melding.

Onverwachte melding

Als u een onverwachte PAT-melding ontvangt, heeft een beheerder of hulpprogramma mogelijk namens u een PAT gemaakt. Zie de volgende voorbeelden.

  • Wanneer u via git.exe verbinding maakt met een Azure DevOps Git-opslagplaats. er wordt een token gemaakt met een weergavenaam zoals 'git: https://MyOrganization.visualstudio.com/ on MyMachine'.
  • Wanneer u of een beheerder een implementatie van een Azure-app Service-web-app instelt, wordt er een token gemaakt met een weergavenaam zoals 'Service Hooks: : Azure-app Service: : Web-app implementeren'.
  • Wanneer u of een beheerder webbelastingstests instelt als onderdeel van een pijplijn, wordt er een token gemaakt met een weergavenaam zoals 'WebAppLoadTestCDIntToken'.
  • Wanneer een Microsoft Teams Integration Messaging-extensie is ingesteld, wordt er een token gemaakt met een weergavenaam zoals Microsoft Teams-integratie.

Waarschuwing

Als u denkt dat er een PAT in een fout bestaat, raden we u aan om de PAT in te trekken. Wijzig vervolgens uw wachtwoord. Als Microsoft Entra-gebruiker kunt u contact opnemen met uw beheerder om te zien of uw organisatie is gebruikt vanuit een onbekende bron of locatie. Zie ook de veelgestelde vragen over het per ongeluk inchecken van een PAT in een openbare GitHub-opslagplaats.

Een PAT gebruiken

Uw PAT is uw identiteit en vertegenwoordigt u wanneer u deze gebruikt, net als een wachtwoord.

Git

Git-interacties vereisen een gebruikersnaam, wat alles kan zijn behalve de lege tekenreeks. Als u een PAT met HTTP-basisverificatie wilt gebruiken, gebruikt Base64-encode u hiervoor $MyPat, die is opgenomen in het volgende codeblok.

Voer in PowerShell de volgende code in.

$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

Als u uw token veiliger wilt houden, gebruikt u referentiebeheerders, zodat u uw referenties niet telkens hoeft in te voeren. Git Credential Manager wordt aangeraden. Git voor Windows is vereist.

Bestaande opslagplaatsen

Als u voor bestaande opslagplaatsen de oorsprong al hebt toegevoegd met behulp van de gebruikersnaam, voert u eerst de volgende opdracht uit.

git remote remove origin

Voer anders de volgende opdracht uit.

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

Een PAT in uw code gebruiken

U kunt een PAT in uw code gebruiken.

Als u de PAT via een HTTP-header wilt opgeven, moet u deze eerst converteren naar een Base64-tekenreeks. In het volgende voorbeeld ziet u hoe u met C# converteert naar Base64.


Authorization: Basic BASE64_USERNAME_PAT_STRING

De resulterende tekenreeks kan vervolgens worden opgegeven als een HTTP-header in de volgende indeling.

In het volgende voorbeeld wordt de HttpClient-klasse in C# gebruikt.

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());
    }
}

Tip

Wanneer u variabelen gebruikt, voegt u een $ aan het begin van de tekenreeks toe, zoals in het volgende voorbeeld.

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());
   }
}

Wanneer uw code werkt, is het een goed moment om over te schakelen van basisverificatie naar OAuth.

Zie de volgende artikelen voor meer informatie en voorbeelden van het gebruik van PAW's:

Een PAT wijzigen

U kunt een PAT opnieuw genereren of uitbreiden en het bereik ervan wijzigen. Na regeneratie is de vorige PAT niet meer geautoriseerd.

  1. Open uw gebruikersinstellingen op de startpagina en selecteer Profiel.

    Schermopname van de reeks knoppen die moeten worden geselecteerd om een PAT te wijzigen.

  2. Selecteer persoonlijke toegangstokens onder Beveiliging. Selecteer het token dat u wilt wijzigen en klik vervolgens op Bewerken.

    Schermopname met de gemarkeerde knop Bewerken om PAT te wijzigen.

  3. Bewerk de tokennaam, het verloop van het token of het toegangsbereik dat is gekoppeld aan het token en selecteer Opslaan.

    Schermopname van gewijzigde PAT.

Een PAT intrekken

U kunt een PAT op elk gewenst moment intrekken om verschillende redenen.

  1. Open uw gebruikersinstellingen op de startpagina en selecteer Profiel.

    Schermopname van een reeks knoppen die u wilt selecteren, teamservices, preview-pagina en een PAT intrekken.

  2. Selecteer persoonlijke toegangstokens onder Beveiliging. Selecteer het token waarvoor u de toegang wilt intrekken en selecteer Vervolgens Intrekken.

    Schermopname van de selectie om één token of alle tokens in te trekken.

  3. Selecteer Intrekken in het bevestigingsvenster.

    Schermopname van het bevestigingsscherm om PAT in te trekken.

Veelgestelde vragen

V: Wat gebeurt er met een PAT als een gebruikersaccount is uitgeschakeld?

A: Zodra een gebruiker is verwijderd uit Azure DevOps, wordt de PAT binnen 1 uur ongeldig gemaakt. Als uw organisatie is verbonden met Microsoft Entra-id, wordt de PAT ook ongeldig gemaakt in Microsoft Entra-id, omdat deze deel uitmaakt van de gebruiker. Het is raadzaam dat de gebruiker zijn PAT roteert naar een ander gebruikers- of serviceaccount om services actief te houden.

V: Is er een manier om een PAT te vernieuwen via REST API?

A: Ja, er is een manier om PAT's te vernieuwen, te beheren en te maken met behulp van onze PAT Lifecycle Management-API's. Zie PAT's beheren met behulp van REST API en onze veelgestelde vragen voor meer informatie.

V: Kan ik basisverificatie gebruiken met alle Azure DevOps REST API's?

A: Nee. U kunt basisverificatie gebruiken met de meeste Azure DevOps REST API's, maar organisaties en profielen ondersteunen alleen OAuth. Zie PAT's beheren met behulp van REST API voor meer informatie.

V: Wat gebeurt er als ik per ongeluk mijn PAT controleer in een openbare opslagplaats op GitHub?

A: Azure DevOps scant op PAW's die zijn ingecheckt in openbare opslagplaatsen op GitHub. Wanneer we een gelekt token vinden, sturen we onmiddellijk een gedetailleerde e-mailmelding naar de eigenaar van het token en melden we een gebeurtenis aan bij het auditlogboek van uw Azure DevOps-organisatie. Tenzij u het beleid voor het automatisch intrekken van gelekte persoonlijke toegangstokens hebt uitgeschakeld, trekken we de gelekte PAT onmiddellijk in. We moedigen getroffen gebruikers aan om het onmiddellijk te verhelpen door het gelekte token in te roepen en te vervangen door een nieuw token.

Zie De gelekte PAW's automatisch intrekken voor meer informatie.

V: Kan ik een persoonlijk toegangstoken gebruiken als ApiKey om NuGet-pakketten te publiceren naar een Azure Artifacts-feed met behulp van de dotnet/nuget.exe-opdrachtregel?

A: Nee. Azure Artifacts biedt geen ondersteuning voor het doorgeven van een persoonlijk toegangstoken als ApiKey. Wanneer u een lokale ontwikkelomgeving gebruikt, wordt aanbevolen de Azure Artifacts Credential Provider te installeren voor verificatie met Azure Artifacts. Zie de volgende voorbeelden voor meer informatie: dotnet, NuGet.exe. Als u uw pakketten wilt publiceren met behulp van Azure Pipelines, gebruikt u de NuGet-verificatietaak om te verifiëren met uw feedvoorbeeld.

V: Waarom werkte mijn PAT niet meer?

A: PAT-verificatie vereist dat u zich regelmatig aanmeldt bij Azure DevOps met behulp van de volledige verificatiestroom. Eenmaal per 30 dagen is voldoende voor veel, maar mogelijk moet u zich vaker aanmelden dan dat, afhankelijk van uw Microsoft Entra-configuratie. Als uw PAT niet meer werkt, probeert u zich eerst aan te melden bij uw organisatie, zodat u de volledige verificatieprompt doorloopt. Als uw PAT daarna nog steeds niet werkt, controleert u of uw PAT is verlopen.