Dela via


Använda personliga åtkomsttoken

Azure DevOps Services | Azure DevOps Server 2022 – Azure DevOps Server 2019

En personlig åtkomsttoken (PAT) kan fungera som ett alternativt lösenord för autentisering i Azure DevOps. Den här artikeln vägleder dig genom processen att skapa, använda, ändra och återkalla PAT:er för Azure DevOps.

Om PAT

En personlig åtkomsttoken (PAT) fungerar som dina säkerhetsautentiseringsuppgifter för Azure DevOps. Denna PAT identifierar dig inte bara utan bestämmer även din tillgänglighet och åtkomstomfattning. Därför är PAT lika viktiga som lösenord och bör hanteras med samma försiktighetsnivå.

Om du använder Microsoft-verktyg är ditt Microsoft-konto (MSA) eller Microsoft Entra-ID en identifierad metod som stöds. Men om du använder verktyg från tredje part som inte stöder Microsoft- eller Microsoft Entra-konton, eller om du är ovillig att dela dina primära autentiseringsuppgifter med dessa verktyg, är PAT ett säkrare alternativ.

Skapa och hantera PAT:er på följande två sätt:

Om du vill upprätta PAT:er för verktyg som inte kommer från Microsoft kan du antingen använda Git-autentiseringsuppgifter eller generera dem manuellt. Vi rekommenderar att du läser vår autentiseringsvägledning som hjälper dig att välja lämplig autentiseringsmekanism. PAT fungerar som ett enkelt alternativ för mindre projekt som inte behöver en omfattande lösning. Om inte en autentiseringshanterare används måste användarna ange sina autentiseringsuppgifter varje gång.

Skapa en PAT

  1. Logga in på din organisation (https://dev.azure.com/{Your_Organization}).

  2. På startsidan öppnar du användarinställningar och väljer Personliga åtkomsttoken.

    Skärmbild som visar val, personliga åtkomsttoken.

  3. Välj + Ny token.

    Skärmbild som visar markeringen Ny token.

  4. Namnge din token, välj den organisation där du vill använda token och ställ sedan in din token så att den upphör att gälla automatiskt efter ett angivet antal dagar.

    Skärmbild som visar inmatning av grundläggande tokeninformation.

  5. Välj omfången för den här token för att auktorisera för dina specifika uppgifter.

    Om du till exempel vill skapa en token för att göra det möjligt för en versions- och versionsagent att autentisera till Azure DevOps begränsar du din tokens omfång till Agentpooler (Läs och hantera). Om du vill läsa granskningslogghändelser och hantera och ta bort strömmar väljer du Läs granskningslogg och sedan Skapa.

    Skärmbild som visar valda omfång för en PAT.

    Kommentar

    Du kan vara begränsad från att skapa fullständiga begränsade PAT:er. I så fall har Azure DevOps-administratören i Microsoft Entra-ID aktiverat en princip som begränsar dig till en specifik anpassad definierad uppsättning omfång. Mer information finns i Hantera PAT med principer/Begränsa skapandet av fullständiga begränsade PAT:er. För en anpassad definierad PAT kan det nödvändiga omfånget för åtkomst till API vso.governance:et för komponentstyrning inte väljas i användargränssnittet.

  6. När du är klar kopierar du token och lagrar den på en säker plats. För din säkerhet visas den inte igen.

    Skärmbild som visar hur du kopierar token till Urklipp.

Använd din PAT var som helst där dina autentiseringsuppgifter krävs för autentisering i Azure DevOps.

Viktigt!

  • Hantera en PAT med samma försiktighet som ditt lösenord och håll det hemligt.
  • För organisationer som backas upp av Microsoft Entra-ID är det nödvändigt att logga in med din nya PAT inom 90 dagar. om det inte gör det blir PAT inaktivt. Mer information finns i Användarinloggningsfrekvens för villkorsstyrd åtkomst.

Meddelanden

Under livslängden för en PAT får användarna två meddelanden – den första vid tidpunkten för skapandet och den andra sju dagar innan den upphör att gälla.

När du har skapat en PAT får du ett meddelande som liknar följande exempel. Det här meddelandet fungerar som en bekräftelse på att din PAT har lagts till i din organisation.

Skärmbild som visar pat-skapat meddelande.

Följande bild visar ett exempel på sjudagarsmeddelandet innan din PAT upphör att gälla.

Skärmbild som visar pat nära förfalloavisering.

Oväntat meddelande

Om du får ett oväntat PAT-meddelande kan det innebära att en administratör eller ett verktyg har skapat en PAT åt dig. Här följer några exempel.

  • En token med namnet "git: https://dev.azure.com/{Your_Organization} on YourMachine" skapas när du ansluter till en Azure DevOps Git-lagringsplats via git.exe.
  • En token med namnet "Service Hooks: : Azure App Service: : Deploy web app" skapas när en Azure App Service-webbappdistribution konfigureras av dig eller en administratör.
  • En token med namnet "WebAppLoadTestCDIntToken" skapas när webbbelastningstestning konfigureras som en del av en pipeline av dig eller en administratör.
  • En token med namnet "Microsoft Teams-integrering" skapas när ett Microsoft Teams Integration Messaging-tillägg har konfigurerats.

Varning

Om du misstänker att en PAT finns i fel kan du överväga att återkalla PAT och ändra ditt lösenord. Som Microsoft Entra-användare kontrollerar du med administratören om din organisation har använts av en okänd källa eller plats. Se även vanliga frågor och svar om oavsiktliga PAT-incheckningar till offentliga GitHub-lagringsplatser.

Använda en PAT

Din PAT fungerar som din digitala identitet och representerar dig när den används, ungefär som ett lösenord gör.

Git

Git-interaktioner kräver ett användarnamn, vilket kan vara allt utom den tomma strängen. Om du vill använda en PAT med grundläggande HTTP-autentisering använder du Base64-encode för $MyPat, som ingår i följande kodblock.

I PowerShell anger du följande kod.

$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

Om du vill skydda din token använder du autentiseringsansvariga så att du inte behöver ange dina autentiseringsuppgifter varje gång. Vi rekommenderar Git Credential Manager. Git för Windows krävs.

Befintliga lagringsplatser

Om du redan har lagt till ursprunget med användarnamnet för befintliga lagringsplatser kör du följande kommando först.

git remote remove origin

Annars kör du följande kommando.

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

Använda en PAT i koden

Du kan använda en PAT i koden.

Om du vill ange PAT via en HTTP-rubrik konverterar du den först till en Base64 sträng. I följande exempel visas hur du konverterar till Base64 med C#.


Authorization: Basic BASE64_USERNAME_PAT_STRING

Den resulterande strängen kan sedan anges som en HTTP-rubrik i följande format.

I följande exempel används klassen HttpClient i 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());
    }
}

Dricks

När du använder variabler lägger du till en $ i början av strängen, som i följande exempel.

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

När koden fungerar är det dags att växla från grundläggande autentisering till OAuth.

Mer information och exempel på hur du använder PAT finns i följande artiklar:

Ändra en PAT

Du kan återskapa, utöka en PAT eller ändra dess omfång. När den tidigare PAT:en har återskapats blir den obehörig.

  1. Öppna användarinställningarna på startsidan och välj sedan Profil.

    Skärmbild som visar sekvens med knappar som ska väljas för att ändra en PAT.

  2. Under Säkerhet väljer du Personliga åtkomsttoken. Välj den token som du vill ändra och sedan Redigera.

    Skärmbild som visar den markerade knappen Redigera för att ändra PAT.

  3. Redigera tokennamnet, förfallodatumet för token eller omfattningen för åtkomsten som är associerad med token och välj sedan Spara.

    Skärmbild som visar modifierad PAT.

Återkalla en PAT

Du kan återkalla en PAT när som helst, av många skäl.

  1. Öppna användarinställningarna på startsidan och välj sedan Profil.

    Skärmbild som visar sekvens med knappar att välja, Team Services, förhandsgranskningssida och återkalla en PAT.

  2. Under Säkerhet väljer du Personliga åtkomsttoken. Välj den token som du vill återkalla åtkomst för och välj sedan Återkalla.

    Skärmbild som visar val för att återkalla en enskild token eller alla token.

  3. Välj Återkalla i bekräftelsedialogrutan.

    Skärmbild som visar bekräftelseskärmen för att återkalla PAT.

Mer information finns i Återkalla användar-PAT för administratörer.

Ändringar i format

Från och med juli 2024 gjorde vi betydande ändringar i formatet för PAT:er som utfärdats av Azure DevOps. Dessa ändringar ger fler säkerhetsfördelar och förbättrar verktygen för identifiering av hemligheter som är tillgängliga via våra partnererbjudanden, till exempel GitHub Advanced Security för Azure DevOps. Den här ändringen i PAT-format följer det nya format som rekommenderas för alla Microsoft-produkter. Vi räknar med att införandet av mer identifierbara bitar kommer att förbättra den falska positiva identifieringshastigheten för dessa hemliga identifieringsverktyg och göra det möjligt för oss att bättre minimera eventuella identifierade läckor snabbare.

Viktiga ändringar:

  • Ökad tokenlängd: De nya token är längre, nu totalt 84 tecken. Av dessa är 52 tecken randomiserade data. Den här ökade längden förbättrar den övergripande entropi, vilket gör token mer resistenta mot potentiella brute force-attacker.
  • Fast signatur: Token som utfärdats av vår tjänst innehåller en fast AZDO signatur på positioner 76-80.

Åtgärd krävs:

  • Återskapa befintliga PAT:er: Vi rekommenderar starkt att du återskapar alla PAT:er som för närvarande används för att dra nytta av dessa säkerhetsförbättringar.
  • Integratorstöd: Integratorer bör uppdatera sina system så att de passar både nya och befintliga tokenlängder.

Eftersom båda formaten är giltiga under överskådlig framtid uppmuntrar vi aktivt kunderna att övergå till det nya formatet på 84 tecken. När införandet av det nya formatet ökar överväger vi att dra tillbaka det äldre formatet på 52 tecken och alla token som utfärdas i det formatet.

Vanliga frågor och svar

F: Varför kan jag inte redigera eller återskapa en PAT-omfattning till en enda organisation?

S: Se till att du är inloggad i den organisation där din PAT är begränsad. Du kan visa alla dina PAT när du är inloggad i någon organisation i samma Microsoft Entra-ID, men du kan bara redigera token med organisationsomfattning när du är inloggad i den organisation som de är begränsade till.

F: Vad händer med en PAT om ett användarkonto är inaktiverat?

S: När en användare har tagits bort från Azure DevOps ogiltigförklaras PAT inom 1 timme. Om din organisation är ansluten till Microsoft Entra-ID är PAT också ogiltigt i Microsoft Entra-ID eftersom det tillhör användaren. Vi rekommenderar att användaren roterar sin PAT till ett annat användar- eller tjänstkonto för att hålla tjänsterna igång.

F: Finns det något sätt att förnya en PAT via REST API?

S: Ja, det finns ett sätt att förnya, hantera och skapa PAT:er med hjälp av våra API:er för livscykelhantering för PAT. Mer information finns i Hantera PAT med hjälp av REST API och våra vanliga frågor och svar.

F: Kan jag använda grundläggande autentisering med alla Rest-API:er för Azure DevOps?

S: Nej. Du kan använda grundläggande autentisering med de flesta Rest-API:er för Azure DevOps, men organisationer och profiler stöder endast OAuth. Mer information finns i Hantera PAT:er med hjälp av REST API.

F: Vad händer om jag av misstag checkar in min PAT på en offentlig lagringsplats på GitHub?

S: Azure DevOps söker efter PAT:er som är incheckade på offentliga lagringsplatser på GitHub. När vi hittar en läckt token skickar vi omedelbart ett detaljerat e-postmeddelande till tokenägaren och loggar en händelse till din Azure DevOps-organisations granskningslogg. Om du inte har inaktiverat principen Återkalla automatiskt läckta personliga åtkomsttoken återkallar vi omedelbart den läckta PAT:en. Vi uppmuntrar berörda användare att omedelbart minimera genom att återkalla den läckta token och ersätta den med en ny token.

Mer information finns i Återkalla läckta PAT automatiskt.

F: Kan jag använda en personlig åtkomsttoken som en ApiKey för att publicera NuGet-paket till en Azure Artifacts-feed med hjälp av kommandoraden dotnet/nuget.exe?

S: Nej. Azure Artifacts saknar stöd för att skicka en personlig åtkomsttoken som en ApiKey. Om du använder en lokal utvecklingsmiljö rekommenderar vi att du installerar Azure Artifacts Credential Provider för att kunna autentisera med Azure Artifacts. Mer information finns i följande exempel: dotnet, NuGet.exe. Om du vill publicera dina paket med Hjälp av Azure Pipelines använder du uppgiften NuGet Authenticate för att autentisera med ditt flödesexempel.

F: Varför slutade min PAT att fungera?

S: PAT-autentisering kräver att du regelbundet loggar in på Azure DevOps med det fullständiga autentiseringsflödet. En gång var 30:e dag räcker för många, men du kan behöva logga in oftare än så beroende på din Microsoft Entra-konfiguration. Om pat slutar fungera kan du först försöka logga in på din organisation och se till att du går igenom den fullständiga autentiseringsprompten. Om din PAT fortfarande inte fungerar efter det kontrollerar du om din PAT har upphört att gälla.