Share via


Persoonlijke toegangstokens gebruiken

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

Een persoonlijk toegangstoken (PAT) fungeert als een alternatief wachtwoord voor verificatie in Azure DevOps. Deze PAT identificeert u en bepaalt uw toegankelijkheid en toegangsbereik. Daarom moet u PAT's met hetzelfde waarschuwingsniveau behandelen als wachtwoorden.

Wanneer u Microsoft-hulpprogramma's gebruikt, is uw Microsoft-account (MSA) of Microsoft Entra-id een herkende en ondersteunde methode. Als u niet-Microsoft-hulpprogramma's gebruikt die geen ondersteuning bieden voor Microsoft- of Microsoft Entra-accounts, of als u uw primaire referenties liever niet met deze hulpprogramma's deelt, zijn PAW's een geschikt alternatief.

In dit artikel wordt u begeleid bij het maken, gebruiken, wijzigen en intrekken van PAW's voor Azure DevOps.

U kunt PAT's beheren met behulp van de volgende methoden:

Als u PAT's wilt instellen voor niet-Microsoft-hulpprogramma's, kunt u Git-referentiebeheerders gebruiken of handmatig genereren. We raden u aan onze verificatierichtlijnen te bekijken om het juiste verificatiemechanisme te kiezen. PAW's bieden een eenvoudig alternatief voor kleinere projecten waarvoor geen uitgebreide oplossing nodig is. Zonder referentiebeheerder voeren gebruikers elke keer hun referenties in.

Vereisten

  • Machtigingen:
    • U hebt toestemming om uw gebruikersinstellingen te openen en te wijzigen waar PAW's worden beheerd.
      • Controleer de machtigingen: Voer een van de volgende processen uit in Azure DevOps om uw machtigingen te controleren:
        • Ga naar uw profiel en selecteer Persoonlijke toegangstokens voor gebruikersinstellingen>. Als u hier uw PAW's kunt zien en beheren, hebt u de benodigde machtigingen.
        • Ga naar uw project en selecteer Machtigingen voor Project-instellingen>. Zoek uw gebruikersaccount in de lijst en controleer de machtigingen die aan u zijn toegewezen. Zoek naar machtigingen met betrekking tot het beheren van tokens of gebruikersinstellingen.
    • Als uw organisatie beleid heeft ingesteld, moet een Azure DevOps-beheerder u mogelijk specifieke machtigingen verlenen of u toevoegen aan een acceptatielijst om PAT's te maken en te beheren.
    • Afhankelijk van de taken die u wilt uitvoeren met de PAT, hebt u mogelijk extra machtigingen nodig. Bijvoorbeeld:
      • Build: Lezen en uitvoeren
      • Code: Lezen, schrijven en beheren
      • Omgeving: Lezen en beheren
      • Project en team: lezen, schrijven en beheren
      • Variabelegroepen: Lezen en maken
  • Toegangsniveaus: minimaal Basistoegang hebben.
  • Aanbevolen beveiligingsprocedures: maak kennis met aanbevolen beveiligingsprocedures voor het beheren van PAW's, zoals het gebruik ervan alleen wanneer dat nodig is en draai ze regelmatig.

Een PAT maken

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

  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 voor een build- en releaseagent voor verificatie bij Azure DevOps, stelt u het bereik van het token in op Agentpools (lezen en beheren). Als u auditlogboekgebeurtenissen wilt lezen en streams wilt beheren of verwijderen, selecteert u Auditlogboek lezen en selecteert u Vervolgens Maken.

    Schermopname van geselecteerde bereiken voor een PAT.

    Notitie

    Mogelijk bent u beperkt tot het maken van VOLLEDIGE PAW's. 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 kan het vereiste bereik voor toegang tot de COMPONENT Governance-API vso.governanceniet worden geselecteerd 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.

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

Belangrijk

Meldingen

Tijdens de levensduur van een PAT ontvangen gebruikers twee meldingen: de eerste op het moment van maken en de tweede 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 fungeert als bevestiging 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 krijgt, kan dit betekenen dat een beheerder of hulpprogramma een PAT voor u heeft gemaakt. Hieronder vindt u enkele voorbeelden.

  • Een token met de naam 'git: https://dev.azure.com/{Your_Organization} on YourMachine' wordt gemaakt wanneer u via git.exe verbinding maakt met een Azure DevOps Git-opslagplaats.
  • Een token met de naam 'Service Hooks: : Azure-app Service: : Web-app implementeren' wordt gemaakt wanneer u of een beheerder een Azure-app Service-web-app-implementatie instelt.
  • Er wordt een token met de naam WebAppLoadTestCDIntToken gemaakt wanneer het testen van webbelasting wordt ingesteld als onderdeel van een pijplijn door u of een beheerder.
  • Er wordt een token met de naam Microsoft Teams Integration gemaakt wanneer een Microsoft Teams Integration Messaging-extensie is ingesteld.

Waarschuwing

  • Trek de PAT in als u vermoedt dat deze in een fout bestaat. Volg de stappen om de PAT in te trekken en uw wachtwoord te wijzigen.
  • Neem contact op met uw beheerder als u een Microsoft Entra-gebruiker bent om te zien of uw organisatie is geopend door een onbekende bron of locatie.
  • Bekijk de veelgestelde vragen over onbedoelde PAT-check-ins naar openbare GitHub-opslagplaatsen.

Een PAT gebruiken

Uw PAT fungeert als uw digitale identiteit, net als een wachtwoord.

Git

Git-interacties vereisen een gebruikersnaam, wat alles kan zijn behalve een lege tekenreeks. Als u een PAT met HTTP-basisverificatie wilt gebruiken, Base64-encode zoals $MyPat wordt weergegeven 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

Gebruik referentiebeheerders om te voorkomen dat u uw referenties telkens invoert en uw token veiliger houdt:

Bestaande opslagplaatsen

  • Bestaande oorsprong verwijderen: Als u de oorsprong eerder hebt toegevoegd met behulp van een gebruikersnaam, verwijdert u deze door de volgende opdracht uit te voeren:

    git remote remove origin

  • Verifiëren met een PAT: als u problemen ondervindt met standaardverificatie, voert u de volgende opdracht uit om te verifiëren via de opdrachtregel:

    git remote add origin https://dev.azure.com/<PAT>@<company_machineName>:/<project-name>/_git/<repo_name>

    git push -u origin --all

    De path to git repo = /_git/do verwijst naar de URL-padstructuur die wordt gebruikt in Azure DevOps voor Git-opslagplaatsen. Het /_git/ segment geeft aan dat u toegang hebt tot een Git-opslagplaats en u moet vervangen door do de werkelijke naam van uw opslagplaats. Als uw opslagplaats bijvoorbeeld de naam my-repoheeft, is het pad '/_git/my-repo'.

  • Kloonopslagplaats: Als u Git gebruikt en moet worden geverifieerd, voert u de volgende opdracht uit:

    git clone https://{organization}@dev.azure.com/{organization}/_git/{repository}

    Vervang door {organization} de naam van uw Azure DevOps-organisatie en {repository} door de naam van uw opslagplaats.

Een PAT in uw code gebruiken

U kunt een PAT in uw code gebruiken om API-aanvragen te verifiëren en werkstromen te automatiseren. Neem hiervoor de PAT op in de autorisatieheader van uw HTTP-aanvragen.

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 converteert naar Base64 C#.


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

Ga als volgt te werk om:

  • Genereer een PAT opnieuw om een nieuw token te maken, waardoor het vorige token ongeldig is.
  • Verleng een PAT om de geldigheidsperiode te verhogen.
  • Wijzig het bereik van een PAT om de machtigingen te wijzigen.
  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 naam van het token, de verlooptijd 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 deze en andere redenen:

  • Een PAT intrekken als u vermoedt dat deze is gecompromitteerd.
  • Een PAT intrekken wanneer deze niet meer nodig is.
  • Een PAT intrekken om beveiligingsbeleid of nalevingsvereisten af te dwingen.
  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.

Zie PAW's voor gebruikers intrekken voor beheerders voor meer informatie.

Wijzigingen in opmaak

Vanaf juli 2024 hebben we de indeling van PAW's die zijn uitgegeven door Azure DevOps aanzienlijk gewijzigd. Deze wijzigingen bieden meer beveiligingsvoordelen en verbeteren de hulpprogramma's voor geheimdetectie die beschikbaar zijn via onze partneraanbiedingen, zoals GitHub Advanced Security voor Azure DevOps. Deze nieuwe PAT-indeling volgt de aanbevolen indeling voor alle Microsoft-producten. De opname van meer identificeerbare bits verbetert de fout-positieve detectiesnelheid van deze hulpprogramma's voor geheime detectie en stelt ons in staat om gedetecteerde lekken sneller te beperken.

Belangrijke wijzigingen:

  • Verhoogde tokenlengte: de nieuwe tokens zijn nu 84 tekens lang, met 52 tekens die willekeurige gegevens bevatten. Deze verhoogde lengte verbetert de algehele entropie, waardoor de tokens beter bestand zijn tegen mogelijke beveiligingsaanvallen.
  • Vaste handtekening: Tokens die door onze service worden uitgegeven, bevatten een vaste AZDO handtekening op posities 76-80.

Actie vereist:

  • Bestaande PAW's opnieuw genereren: we raden u ten zeerste aan alle PAT's die momenteel in gebruik zijn, opnieuw te genereren om te profiteren van deze beveiligingsverbeteringen.
  • Integrator-ondersteuning: Integrators moeten hun systemen bijwerken om zowel de nieuwe als de bestaande tokenlengten aan te kunnen.

Belangrijk

Beide indelingen blijven geldig voor de nabije toekomst, maar we moedigen klanten actief aan om over te stappen op de nieuwe indeling van 84 tekens. Naarmate de acceptatie van de nieuwe indeling toeneemt, kunt u overwegen om de oudere indeling van 52 tekens en alle tokens die in die stijl zijn uitgegeven, buiten gebruik te stellen.

Veelgestelde vragen

V: Waarom kan ik een PAT-bereik niet bewerken of opnieuw genereren voor één organisatie?

A: Zorg ervoor dat u bent aangemeld bij de organisatie waar uw PAT binnen het bereik valt. U kunt al uw PAT's bekijken terwijl u bent aangemeld bij elke organisatie in dezelfde Microsoft Entra-id, maar u kunt alleen tokens binnen het bereik van de organisatie bewerken wanneer u bent aangemeld bij de organisatie waarvoor ze het bereik hebben.

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

A: Wanneer een gebruiker wordt verwijderd uit Azure DevOps, wordt de PAT binnen 1 uur ongeldig. 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. U wordt aangeraden de PAT te roteren 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 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 registreren we een gebeurtenis in 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 raden getroffen gebruikers aan om het probleem 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. Om de 30 dagen aanmelden is voldoende voor veel gebruikers, maar mogelijk moet u zich vaker aanmelden, afhankelijk van uw Microsoft Entra-configuratie. Als uw PAT niet meer werkt, meldt u zich eerst aan bij uw organisatie en voltooit u de volledige verificatieprompt. Als uw PAT nog steeds niet werkt, controleert u of deze is verlopen.

V: Hoe kan ik toegangssleutels maken die niet zijn gekoppeld aan een specifieke persoon voor implementatiedoeleinden?

A: In Azure DevOps kunt u toegangssleutels maken die niet zijn gekoppeld aan een specifieke persoon met behulp van service-principals of identiteiten beheren. Zie Serviceverbindingen beheren, Azure Key Vault-geheimen gebruiken in Azure Pipelines voor meer informatie.