Använda personliga åtkomsttoken
Azure DevOps Services | Azure DevOps Server 2022 – Azure DevOps Server 2019
En personlig åtkomsttoken (PAT) fungerar som ett alternativt lösenord för autentisering i Azure DevOps. Denna PAT identifierar dig och bestämmer din tillgänglighet och åtkomstomfattning. Behandla därför PAT med samma försiktighetsnivå som lösenord.
Viktigt!
Vi rekommenderar att du använder Microsoft Entra-token. Mer information om vårt arbete med att minska PAT-användningen finns i vår blogg. Läs vår autentiseringsvägledning för att välja lämplig autentiseringsmekanism för dina behov.
När du använder Microsoft-verktyg identifieras och stöds ditt Microsoft-konto (MSA) eller Microsoft Entra-ID. Om du använder verktyg som inte stöder Microsoft Entra-konton eller inte vill dela dina primära autentiseringsuppgifter kan PAT vara ett lämpligt alternativ. Vi rekommenderar dock att du använder Microsoft Entra-tokens framför PAT när det är möjligt.
Du kan hantera PAT:er via följande metoder:
- Användargränssnitt(UI): Via användarinställningar, enligt beskrivningen i den här artikeln.
- API:er för PAT-livscykelhantering
- Git-uppgiftshanterare för Git-åtgärder. Autentiseringsansvariga underlättar tokenhantering. Utan en måste användarna ange sina autentiseringsuppgifter varje gång.
Förutsättningar
-
Behörigheter:
- Ha behörighet att komma åt och ändra användarinställningarna där PAT hanteras.
-
Kontrollera behörigheter: Kontrollera dina behörigheter genom att utföra någon av följande processer i Azure DevOps:
- Gå till din profil och välj Användarinställningar>Personliga åtkomsttoken. Om du kan se och hantera dina PAT:er här har du de behörigheter som krävs.
- Gå till projektet och välj Projektinställningar>Behörigheter. Leta upp ditt användarkonto i listan och kontrollera de behörigheter som tilldelats dig. Leta efter behörigheter som rör hantering av token eller användarinställningar.
-
Kontrollera behörigheter: Kontrollera dina behörigheter genom att utföra någon av följande processer i Azure DevOps:
- Om din organisation har principer på plats kan en Azure DevOps-administratör behöva ge dig specifika behörigheter eller lägga till dig i en lista över tillåtna för att skapa och hantera PATs.
- PAT:er är anslutna till det användarkonto som skapade token. Beroende på vilka uppgifter PAT utför kan du behöva fler behörigheter själv.
- Ha behörighet att komma åt och ändra användarinställningarna där PAT hanteras.
- Åtkomstnivåer: Ha minst grundläggande åtkomst.
- Bästa praxis för säkerhet: Bekanta dig med bästa praxis för säkerhet för att hantera PAT. Använd dem endast när det behövs och rotera dem alltid regelbundet.
Skapa en PAT
Logga in på organisationen (
https://dev.azure.com/{Your_Organization}
).På startsidan öppnar du användarinställningar och väljer Personliga åtkomsttoken.
Välj + Ny token.
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.
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 en versions- och versionsagent för att autentisera till Azure DevOps anger du tokens omfång till Agentpooler (Läs och hantera). Om du vill läsa granskningslogghändelser och hantera eller ta bort strömmar väljer du Läs granskningslogg och sedan Skapa.
Kommentar
Du kan vara begränsad från att skapa fullständiga begränsade PAT:er. I så fall har Din Azure DevOps-administratör i Microsoft Entra-ID aktiverat en princip som begränsar dig till en specifik anpassad 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 egendefinierad 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.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.
Använd din PAT var som helst där dina autentiseringsuppgifter krävs för autentisering i Azure DevOps.
Viktigt!
- Behandla en PAT med samma försiktighet som ditt lösenord och håll det konfidentiellt.
- Logga in med din nya PAT inom 90 dagar för organisationer som backas upp av Microsoft Entra-ID; annars blir PAT inaktiv. 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 dagarna 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.
Följande bild visar ett exempel på sjudagarsmeddelandet innan din PAT upphör att gälla.
Mer information finns i Konfigurera en SMTP-server och anpassa e-post för aviseringar och feedbackbegäranden.
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 du eller en administratör konfigurerar en Azure App Service-webbappdistribution.
- 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 konfigureras.
Varning
- Återkalla PAT- (och ändra ditt lösenord) om du misstänker att det finns ett fel.
- Kontakta administratören om du är en Microsoft Entra-användare för att se om en okänd källa eller plats har använt din organisation.
- Läs vanliga frågor och svar om oavsiktliga PAT-incheckningar till offentliga GitHub-lagringsplatser.
Använda en PAT
Din PAT fungerar som din digitala identitet, ungefär som ett lösenord. Du kan använda PAT som ett snabbt sätt att göra enstaka begäranden eller skapa en prototyp för ett program lokalt.
Viktigt!
När koden fungerar är det dags att växla från grundläggande autentisering till Microsoft Entra OAuth-. Du kan använda Microsoft Entra-ID-token var som helst där en PAT används, om du inte anger mer i den här artikeln.
Du kan använda en PAT i koden för att autentisera REST-API:er begäranden och automatisera arbetsflöden. Det gör du genom att inkludera PAT i auktoriseringshuvudet för dina HTTP-begäranden.
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ågra fler exempel på hur du använder PAT finns i följande artiklar:
- Autentisera med dina Git-repositories
- Konfigurera Git-autentiseringshanterare (GCM) för att ansluta till Git-lagringsplatser
- Använda NuGet på en Mac
- Autentisera rapportklienter
- Kom igång med Azure DevOps CLI
Ändra en PAT
Gör följande för att:
- Återskapa en PAT för att skapa en ny token, vilket ogiltigförklarar den föregående.
- Utöka en PAT för att öka giltighetsperioden.
- Ändra omfånget för en PAT för att ändra dess behörigheter.
Öppna användarinställningarna på startsidan och välj sedan Profil.
Under Säkerhet väljer du Personliga åtkomsttoken. Välj den token som du vill ändra och sedan Redigera.
Redigera tokennamnet, förfallodatumet för token eller omfattningen för åtkomsten som är associerad med token och välj sedan Spara.
Återkalla en PAT
Du kan när som helst återkalla en PAT av följande och andra skäl:
- Återkalla en PAT om du misstänker att den har komprometterats.
- Återkalla en PAT när den inte längre behövs.
- Återkalla en PAT för att tillämpa säkerhetsprinciper eller efterlevnadskrav.
Öppna användarinställningarna på startsidan och välj sedan Profil.
Under Säkerhet väljer du Personliga åtkomsttoken. Välj den token som du vill återkalla åtkomst för och välj sedan Återkalla.
Välj Återkalla i bekräftelsedialogrutan.
Mer information finns i Återkalla användar-PAT för administratörer.
Ändringar i format
Från och med juli 2024 ändrade vi avsevärt formatet för PAT:er som utfärdats av Azure DevOps. Dessa ändringar ger fler säkerhetsfördelar och förbättrar verktyget för identifiering av hemligheter som är tillgängliga via våra läckta PAT-identifieringsverktyg eller partnererbjudanden. Det här nya PAT-formatet följer det rekommenderade formatet för alla Microsoft-produkter. Införandet av mer identifierbara bitar förbättrar den falska positiva identifieringshastigheten för dessa verktyg för identifiering av hemligheter och gör det möjligt för oss att minska identifierade läckor snabbare.
Viktiga ändringar:
- Ökad tokenlängd: De nya token är nu 84 tecken långa, med 52 tecken som 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.
Viktigt!
Båda formaten är giltiga under överskådlig framtid, men vi uppmuntrar aktivt kunderna att övergå till det nya formatet med 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.
Metodtips för att använda PAT
Överväg alternativ
- Hämta en Microsoft Entra-token via Azure CLI för tillfälliga förfrågningar som varar i en timme i stället för att skapa en personlig åtkomsttoken med längre livslängd.
- Använd autentiseringshanterare som Git Credential Manager eller Azure Artifacts Credential Manager för förenkling av autentiseringsuppgifter. Dessa verktyg kan erbjuda alternativ för att använda Microsoft Entra-token som standardautentisering i stället för PAT.
Skapa PAT
- Undvik att placera personuppgifter i PAT-namnet. Döp inte om PAT-tokensträngen till namnet på din token.
- Välj endast den organisation som din PAT behöver åtkomst till om den inte behöver komma åt flera organisationer. För arbetsflöden som kräver åtkomst till flera organisationer skapar du en separat global PAT för arbetsflödet.
- Välj endast de nödvändiga omfången för varje PAT. Om möjligt skapar du flera PAT:er för varje arbetsflöde med färre omfång i stället för en enda fullständigt begränsad PAT. Om din PAT bara behöver läsbehörigheter ska du inte ge den skrivbehörighet förrän det behövs.
- Håll PAT-livslängden kort (varje vecka är perfekt, ännu kortare är bättre) och rotera eller återskapa dem regelbundet via användargränssnittet eller api:erna för PAT Lifecycle Management.
Hantera PAT
- Alltid lagra dina PAT i en säker nyckelhanteringslösning som Azure KeyVault-.
- Återkalla PAT när de inte längre behövs. Klientadministratörer kan återkalla PAT för sina organisationsanvändare om PAT komprometteras.
- Rotera dina PAT:er för att använda det nya PAT-formatet för bättre läckande identifiering och återkallande av våra förstapartsverktyg.
För administratörer
Klientadministratörer kan ange principer för att begränsa skapandet av globala PAT, fullständigt skapande av PAT och långvarig PAT-varaktighet. De kan också aktivera principer för att automatiskt återkalla läckta PAT:er som identifierats i offentliga lagringsplatser. Använd dessa principer för att förbättra företagets säkerhet.
Vanliga frågor och svar
F: Varför kan jag inte redigera eller återskapa en PAT-omfattning till en enda organisation?
Logga in på organisationen där din PAT är angiven. Du kan visa alla dina PAT när du är inloggad i en organisation i samma Microsoft Entra-ID, men du kan bara redigera token med organisationsomfattning när du är inloggad i den specifika organisationen.
F: Vad händer med en PAT om ett användarkonto är inaktiverat?
S: När en användare tas bort från Azure DevOps ogiltigförklaras PAT inom 1 timme. Om din organisation är ansluten till Microsoft Entra-ID ogiltigförklaras även PAT i Microsoft Entra-ID eftersom den tillhör användaren. Vi rekommenderar att du roterar 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, du kan förnya, hantera och skapa PAT:er med hjälp av våra API:er för PAT-livscykelhantering.
F: Kan jag använda PAT:er med alla Azure DevOps REST API:er?
S: Nej. Du kan använda grundauthentisering med de flesta REST-API:er för Azure DevOps, men organisationer och profiler och API:er för PAT Management-livscykeln endast stöds Microsoft Entra OAuth. Ett exempel på hur du konfigurerar en Microsoft Entra-app för att anropa sådana API:er 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 i 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 åtgärda problemet 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 har inte stöd för att skicka en PAT som en ApiKey. När du använder en lokal utvecklingsmiljö rekommenderar vi att du installerar Azure Artifacts Credential Provider för att 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 mot ditt flöde. Se exempel.
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. Det räcker att logga in en gång var 30:e dag för många användare, men du kan behöva logga in oftare beroende på din Microsoft Entra-konfiguration. Om din PAT slutar fungera kan du först försöka logga in på din organisation och slutföra den fullständiga autentiseringsprompten. Om din PAT fortfarande inte fungerar kontrollerar du om den har upphört att gälla.
Om du aktiverar grundläggande IIS-autentisering ogiltigförklaras användningen av PAT:er för Azure DevOps Server. Mer information finns i Using IIS Basic Authentication with Azure DevOps on-premises.
F: Hur gör jag för att skapa åtkomstnycklar som inte är knutna till en specifik person i distributionssyfte?
S: I Azure DevOps kan du skapa åtkomstnycklar som inte är knutna till en specifik person med hjälp av tjänstens huvudnamn eller hanterade identiteter. Mer information finns i Hantera tjänstanslutningar och Använda Azure Key Vault-hemligheter i Azure Pipelines.
Relaterade artiklar
- Använda principer för att hantera personliga åtkomsttoken för användare
- Återkalla användar-PAT (för administratörer)
- Lär dig mer om säkerhet, autentisering och auktorisering
- Granska standardbehörigheter och åtkomst för Azure DevOps
- Hantera personliga åtkomsttoken (PAT) med hjälp av REST API-
- Hantera tjänstens huvudnamn och hanterade identiteter i Azure DevOps