Persönliche Zugriffstoken verwenden
Azure DevOps Services | Azure DevOps Server 2022 | Azure DevOps Server 2019
Ein persönliches Zugriffstoken (PERSONAL Access Token, PAT) dient als alternatives Kennwort für die Authentifizierung in Azure DevOps. Dieser PAT identifiziert Sie und bestimmt Ihre Barrierefreiheit und den Umfang des Zugriffs. Behandeln Sie daher PATs mit der gleichen Vorsicht wie Kennwörter.
Wichtig
Wir empfehlen die Verwendung von Microsoft Entra-Token. Weitere Informationen über unsere Bemühungen, die Verwendung von PATs zu reduzieren, finden Sie in unserem Blog. Lesen Sie unsere Authentifizierungsleitfäden, um den geeigneten Authentifizierungsmechanismus für Ihre Anforderungen auszuwählen.
Wenn Sie Microsoft-Tools verwenden, wird Ihr Microsoft-Konto (MSA) oder Ihre Microsoft Entra-ID erkannt und unterstützt. Wenn Sie Tools verwenden, die Microsoft Entra-Konten nicht unterstützen oder Ihre primären Anmeldeinformationen nicht freigeben möchten, können PATs eine geeignete Alternative sein. Wir empfehlen jedoch, wann immer möglich Microsoft Entra-Token statt PATs zu verwenden.
Sie können PATs über die folgenden Methoden verwalten:
- Benutzeroberfläche (UI): Über die Benutzereinstellungen, wie in diesem Artikel beschrieben.
- PAT Lifecycle Management APIs
- Git-Credential-Manager für Git-Operationen. Credential-Manager erleichtern die Token-Verwaltung. Ohne PAT müssen die Benutzer ihre Anmeldeinformationen jedes Mal neu eingeben.
Voraussetzungen
- Berechtigungen:
- Sie haben die Berechtigung, auf Ihre Benutzereinstellungen zuzugreifen und sie zu ändern, in denen PATs verwaltet werden.
- Überprüfen Sie Die Berechtigungen: Führen Sie zum Überprüfen Ihrer Berechtigungen eine der folgenden Prozesse in Azure DevOps aus:
- Wechseln Sie zu Ihrem Profil, und wählen Sie persönliche Zugriffstoken für Benutzereinstellungen>aus. Wenn Sie Ihre PATs hier anzeigen und verwalten können, verfügen Sie über die erforderlichen Berechtigungen.
- Wechseln Sie zu Ihrem Projekt, und wählen Sie "Projekteinstellungen>"-Berechtigungen aus. Suchen Sie Ihr Benutzerkonto in der Liste, und überprüfen Sie die Ihnen zugewiesenen Berechtigungen. Suchen Sie nach Berechtigungen im Zusammenhang mit der Verwaltung von Token oder Benutzereinstellungen.
- Überprüfen Sie Die Berechtigungen: Führen Sie zum Überprüfen Ihrer Berechtigungen eine der folgenden Prozesse in Azure DevOps aus:
- Wenn Ihre Organisation Richtlinien enthält, muss Ihnen möglicherweise ein Azure DevOps-Administrator bestimmte Berechtigungen erteilen oder Sie einer Zulassungsliste zum Erstellen und Verwalten von PATs hinzufügen.
- PATs sind mit dem Benutzerkonto verbunden, das den Token geprägt hat. Je nachdem, welche Aufgaben der PAT ausführt, benötigen Sie selbst möglicherweise mehr Berechtigungen.
- Sie haben die Berechtigung, auf Ihre Benutzereinstellungen zuzugreifen und sie zu ändern, in denen PATs verwaltet werden.
- Zugriffsebenen: Verfügen Sie über mindestens einfachen Zugriff.
- Bewährte Sicherheitsverfahren: Machen Sie sich vertraut mit bewährte Sicherheitsverfahren für die Verwaltung von PATs. Verwenden Sie sie nur bei Bedarf und wechseln Sie sie regelmäßig aus.
PAT erstellen
Melden Sie sich bei Ihrem organization (
https://dev.azure.com/{Your_Organization}
) an.Öffnen Sie über die Startseite Ihre Benutzereinstellungen , und wählen Sie dann Persönliche Zugriffstoken aus.
Wählen Sie + Neues Token aus.
Benennen Sie Ihr Token, wählen Sie die Organisation aus, in der Sie das Token verwenden möchten, und legen Sie ihr Token dann so fest, dass es nach einer festgelegten Anzahl von Tagen automatisch abläuft.
Wählen Sie die Bereiche für dieses Token aus, um sie für Ihre spezifischen Aufgaben zu autorisieren.
Wenn Sie z. B. ein Token für einen Build- und Veröffentlichungs-Agent erstellen möchten, um sich bei Azure DevOps zu authentifizieren, legen Sie den Bereich des Tokens auf Agentpools (Lesen und Verwalten) fest. Um Überwachungsprotokollereignisse zu lesen und Datenströme zu verwalten oder zu löschen, wählen Sie "Überwachungsprotokoll lesen" und dann "Erstellen" aus.
Hinweis
Möglicherweise sind Sie auf das Erstellen vollständiger PATs beschränkt. Wenn ja, hat Ihr Azure DevOps-Administrator in der Microsoft Entra-ID eine Richtlinie aktiviert, die Sie auf einen bestimmten benutzerdefinierten Satz von Bereichen beschränkt. Weitere Informationen finden Sie unter Manage PATs with policies/Restrict creation of full-scoped PATs. Für einen benutzerdefinierten PAT ist der erforderliche Bereich für den Zugriff auf die Component Governance-API
vso.governance
nicht in der Benutzeroberfläche auswählbar.Kopieren Sie danach das Token, und speichern Sie es an einem sicheren Speicherort. Für Ihre Sicherheit wird sie nicht mehr angezeigt.
Verwenden Sie Ihre PAT überall, wo Ihre Benutzeranmeldeinformationen für die Authentifizierung in Azure DevOps erforderlich sind.
Wichtig
- Behandeln Sie einen PAT mit der gleichen Vorsicht wie Ihr Kennwort, und bewahren Sie es vertraulich auf.
- Melden Sie sich innerhalb von 90 Tagen mit Ihrem neuen PAT für Organisationen an, die von der Microsoft Entra-ID unterstützt werden; andernfalls wird der PAT inaktiv. Weitere Informationen finden Sie unter Benutzeranmeldungshäufigkeit für bedingten Zugriff.
Benachrichtigungen
Während der Lebensdauer eines PAT erhalten Benutzer zwei Benachrichtigungen: die erste zum Zeitpunkt der Erstellung und die zweiten sieben Tage vor ablaufen.
Nachdem Sie einen PAT erstellt haben, erhalten Sie eine Benachrichtigung ähnlich dem folgenden Beispiel. Diese Benachrichtigung dient als Bestätigung, dass Ihr PAT erfolgreich zu Ihrer Organisation hinzugefügt wurde.
Die folgende Abbildung zeigt ein Beispiel für die siebentägige Benachrichtigung, bevor Ihr PAT abläuft.
Weitere Informationen finden Sie unter Konfigurieren eines SMTP-Servers und Anpassen von E-Mails für Warnungen und Feedbackanforderungen.
Unerwartete Benachrichtigung
Wenn Sie eine unerwartete PAT-Benachrichtigung erhalten, bedeutet dies möglicherweise, dass ein Administrator oder Tool einen PAT für Sie erstellt hat. Hier sind einige Beispiele:
- Ein Token namens "git:
https://dev.azure.com/{Your_Organization}
on YourMachine" wird erstellt, wenn Sie über git.exe eine Verbindung mit einem Git-Repository von Azure DevOps herstellen. - Ein Token namens "Service Hooks: Azure App Service: Deploy web app" wird erstellt, wenn Sie oder ein Administrator eine Azure App Service-Web-App-Bereitstellung einrichtet.
- Ein Token mit dem Namen "WebAppLoadTestCDIntToken" wird erstellt, wenn Sie oder ein Administrator Weblasttests als Teil einer Pipeline einrichten.
- Ein Token namens "Microsoft Teams-Integration" wird erstellt, wenn eine Microsoft Teams Integration Messaging-Erweiterung eingerichtet wird.
Warnung
- Widerrufen Sie den PAT (und ändern Sie Ihr Kennwort), wenn Sie vermuten, dass er irrtümlich existiert.
- Wenden Sie sich an Ihren Administrator, wenn Sie ein Microsoft Entra-Benutzer sind, um festzustellen, ob eine unbekannte Quelle oder ein unbekannter Speicherort auf Ihre Organisation zugegriffen hat.
- Überprüfen Sie die häufig gestellten Fragen zu versehentlichen PAT-Check-Ins in öffentlichen GitHub-Repositorys.
Verwenden eines PAT
Ihr PAT dient als digitale Identität, ähnlich wie ein Kennwort. Sie können PATs als schnelle Möglichkeit verwenden, einmalige Anforderungen auszuführen oder eine Anwendung lokal zu prototypieren.
Wichtig
Wenn Ihr Code funktioniert, ist es ein guter Zeitpunkt, um von Basic Auth zu Microsoft Entra OAuth zu wechseln. Sie können Microsoft Entra ID-Token überall dort verwenden, wo ein PAT verwendet wird, es sei denn, dies wird in diesem Artikel näher erläutert.
Sie können ein PAT in Ihrem Code verwenden, um REST-APIs Anfragen zu authentifizieren und Workflows zu automatisieren. Fügen Sie dazu den PAT in den Autorisierungsheader Ihrer HTTP-Anforderungen ein.
Um den PAT über einen HTTP-Header bereitzustellen, konvertieren Sie ihn zuerst in eine Base64
Zeichenfolge. Das folgende Beispiel zeigt, wie Sie in C# konvertieren Base64
.
Authorization: Basic BASE64_USERNAME_PAT_STRING
Die resultierende Zeichenfolge kann dann als HTTP-Header im folgenden Format bereitgestellt werden.
Im folgenden Beispiel wird die HttpClient-Klasse in C# verwendet.
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());
}
}
Tipp
Wenn Sie Variablen verwenden, fügen Sie einen $
am Anfang der Zeichenfolge hinzu, wie im folgenden Beispiel.
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());
}
}
Einige weitere Beispiele für die Verwendung von PATs finden Sie in den folgenden Artikeln:
- Authentifizieren Sie sich mit Ihren Git-Repos
- Einrichten von Git Credential Managern (GCM) zur Verbindung mit Git-Repositories
- Verwenden von NuGet auf einem Mac
- Authentifizieren von Berichtsclients
- Erste Schritte mit Azure DevOps CLI
Ändern eines PAT
Führen Sie die folgenden Schritte aus:
- Generieren Sie einen PAT erneut, um ein neues Token zu erstellen, das das vorherige Token ungültig macht.
- Verlängern Sie einen PAT, um seine Gültigkeitsdauer zu erhöhen.
- Ändern Sie den Umfang eines PAT, um seine Berechtigungen zu ändern.
Öffnen Sie auf Ihrer Startseite Ihre Benutzereinstellungen, und wählen Sie dann "Profil" aus.
Wählen Sie unter "Sicherheit" die Option "Persönliche Zugriffstoken" aus. Wählen Sie das Token aus, das Sie ändern möchten, und bearbeiten Sie dann.
Bearbeiten Sie den Tokennamen, den Tokenablauf oder den Bereich des Zugriffs, der dem Token zugeordnet ist, und wählen Sie dann "Speichern" aus.
Widerrufen eines PAT
Sie können einen PAT jederzeit aus diesen und anderen Gründen widerrufen:
- Widerrufen Sie einen PAT, wenn Sie vermuten, dass er kompromittiert ist.
- Widerrufen Sie einen PAT, wenn er nicht mehr benötigt wird.
- Widerrufen Sie einen PAT, um Sicherheitsrichtlinien oder Complianceanforderungen zu erzwingen.
Öffnen Sie auf Ihrer Startseite Ihre Benutzereinstellungen, und wählen Sie dann "Profil" aus.
Wählen Sie unter "Sicherheit" die Option "Persönliche Zugriffstoken" aus. Wählen Sie das Token aus, für das Sie den Zugriff widerrufen möchten, und wählen Sie dann "Widerrufen" aus.
Wählen Sie im Bestätigungsdialogfeld "Widerrufen " aus.
Weitere Informationen finden Sie unter Widerrufen von Benutzer-PATs für Administratoren.
Änderungen am Format
Seit Juli 2024 haben wir das Format von PATs, die von Azure DevOps ausgestellt wurden, erheblich geändert. Diese Änderungen bieten mehr Sicherheitsvorteile und verbessern die Werkzeuge zur Erkennung von Geheimnissen, die über unsere undichte PAT-Erkennungstools oder Partnerangebote. Dieses neue PAT-Format folgt dem empfohlenen Format für alle Microsoft-Produkte. Die Einbeziehung von identifizierbaren Bits verbessert die falsch positive Erkennungsrate dieser geheimen Erkennungstools und ermöglicht es uns, erkannte Lecks schneller zu mindern.
Wichtige Änderungen:
- Erhöhte Tokenlänge: Die neuen Token sind jetzt 84 Zeichen lang, wobei 52 Zeichen zufällige Daten enthalten. Diese erhöhte Länge verbessert die Gesamtentropie und macht die Token widerstandsfähiger gegenüber potenziellen Brute-Force-Angriffen.
- Feste Signatur: Von unserem Dienst ausgestellte Token enthalten eine feste
AZDO
Signatur an den Positionen 76-80.
Aktion erforderlich:
- Vorhandene PATs neu generieren: Es wird dringend empfohlen, alle derzeit verwendeten PATs neu zu generieren, um diese Sicherheitsverbesserungen zu nutzen.
- Integrationsunterstützung: Integratoren sollten ihre Systeme so aktualisieren, dass sowohl die neue als auch die vorhandene Tokenlänge berücksichtigt werden.
Wichtig
Beide Formate bleiben für die vorhersehbare Zukunft gültig, aber wir ermutigen Kunden aktiv, auf das neue 84-Zeichen-Format umzusteigen. Da die Akzeptanz des neuen Formats zunimmt, sollten wir das ältere 52-stellige Format und alle token, die in diesem Stil ausgegeben wurden, zurückstellen.
Bewährte Verfahren für die Verwendung von PATs
Erwägen Sie Alternativen
- Holen Sie sich für Ad-hoc-Anfragen ein Microsoft Entra-Token über Azure CLI, das eine Stunde lang gültig ist, anstatt ein längerfristiges PAT zu erstellen.
- Verwenden Sie Anmeldeinformationsmanager wie Git Credential Manager oder Azure Artifacts Credential Manager zur Vereinfachung der Anmeldeinformationsverwaltung. Diese Tools bieten möglicherweise Optionen zur Verwendung von Microsoft Entra-Token als Standardauthentifizierung anstelle von PATs.
PATs erstellen
- Vermeiden Sie, personenbezogene Daten in den PAT-Namen einzufügen. Benennen Sie die Zeichenfolge des PAT-Tokens nicht in den Namen Ihres Tokens um.
- Wählen Sie nur die Organisation aus, auf die Ihr PAT zugreifen muss, wenn sie nicht auf mehrere Organisationen zugreifen muss. Erstellen Sie für Workflows, die Zugriff auf mehrere Organisationen erfordern, einen separaten globalen PAT für diesen Workflow.
- Wählen Sie für jedes PAT nur die notwendigen Bereiche aus. Wenn möglich, erstellen Sie für jeden Workflow mehrere PATs mit weniger Bereichen anstelle eines einzigen PATs mit vollem Umfang. Wenn Ihr PAT nur Leseberechtigungen benötigt, geben Sie ihm erst bei Bedarf Schreibberechtigungen.
- Halten Sie die Lebensspanne von PATs kurz (wöchentlich ist ideal, noch kürzer ist besser) und rotieren oder regenerieren Sie sie regelmäßig über die Benutzeroberfläche oder die PAT Lifecycle Management APIs.
PATs verwalten
- Speichern Sie Ihre PATs immer in einer Lösung zur sicheren Schlüsselverwaltung wie Azure Key Vault.
- Widerrufen Sie PATs, wenn sie nicht mehr benötigt werden. Mieteradministratoren können PATs für die Benutzer ihrer Organisation zu widerrufen wenn das PAT gefährdet ist.
- Rotieren Sie Ihre PATs und verwenden Sie das neue PAT-Format für eine bessere Erkennung von durchgesickerten Secrets und deren Widerruf durch unsere First-Party-Tools.
Für Administratoren
Mieteradministratoren können Richtlinien festlegen um die Erstellung globaler PATs, die Erstellung von PATs mit vollem Geltungsbereich und die Dauer von PATs mit langer Lebensdauer einzuschränken. Sie können auch Richtlinien zum automatischen Widerruf von durchgesickerten PATs aktivieren, die in öffentlichen Repositories entdeckt wurden. Verwenden Sie diese Richtlinien, um die Sicherheit Ihres Unternehmens zu verbessern.
Häufig gestellte Fragen
F: Warum kann ich einen PAT-Bereich nicht bearbeiten oder neu erstellen, der auf eine einzelne Organisation ausgerichtet ist?
A: Melden Sie sich bei der Organisation an, in deren Bereich Ihr PAT fällt. Sie können alle Ihre PATs einsehen, während Sie bei einer beliebigen Organisation mit derselben Microsoft Entra ID angemeldet sind, aber Sie können Token für den Bereich der Organisation nur bearbeiten, wenn Sie bei der spezifischen Organisation angemeldet sind.
F: Was geschieht mit einem PAT, wenn ein Benutzerkonto deaktiviert ist?
A: Wenn ein Benutzer aus Azure DevOps entfernt wird, wird der PAT innerhalb von 1 Stunde ungültig. Wenn Ihre Organisation mit der Microsoft Entra-ID verbunden ist, wird der PAT auch in der Microsoft Entra-ID ungültig, da sie zum Benutzer gehört. Es wird empfohlen, den PAT-Dienst in ein anderes Benutzer- oder Dienstkonto zu drehen, um die Dienste weiterhin auszuführen.
F: Gibt es eine Möglichkeit, einen PAT über DIE REST-API zu verlängern?
A: Ja, Sie können PATs mithilfe unserer PAT Lifecycle Management-APIserneuern, verwalten und erstellen.
F: Kann ich PATs mit allen REST-APIs von Azure DevOps verwenden?
A: Nein. Sie können mit den meisten Azure DevOps REST-APIs die Basisauthentifizierung verwenden, aber Organisationen und Profile und die PAT Management Lifecycle APIs unterstützen nur Microsoft Entra OAuth. Ein Beispiel zum Einrichten einer Microsoft Entra-App zum Aufrufen solcher APIs finden Sie unter Verwalten von PATs mithilfe der REST-API-.
F: Was geschieht, wenn ich meinen PAT versehentlich in eine öffentliches Repository auf GitHub einchecke?
A: Azure DevOps sucht nach PATs, die in öffentliche Repositorys auf GitHub eingecheckt wurden. Wenn wir ein durchlecktes Token finden, senden wir sofort eine detaillierte E-Mail-Benachrichtigung an den Tokenbesitzer und protokollieren ein Ereignis im Überwachungsprotokoll Ihrer Azure DevOps-Organisation. Sofern Sie die Richtlinie für verlorene persönliche Zugriffstoken nicht deaktiviert haben, widerrufen wir sofort das geleeckte PAT. Wir empfehlen betroffenen Benutzern, das Problem zu mindern, indem wir das verlorene Token widerrufen und durch ein neues Token ersetzen. Weitere Informationen finden Sie unter "Automatisches Widerrufen von geleckten PATs".
F: Kann ich ein persönliches Zugriffstoken als ApiKey verwenden, um NuGet-Pakete mithilfe der Befehlszeile dotnet/nuget.exe in einem Azure Artifacts-Feed zu veröffentlichen?
A: Nein. Azure Artifacts unterstützt nicht die Übergabe eines PAT als ApiKey. Wenn Sie eine lokale Entwicklungsumgebung verwenden, empfehlen wir die Installation des Azure Artifacts Credential Provider zur Authentifizierung bei Azure Artifacts. Weitere Informationen finden Sie in den folgenden Beispielen: dotnet, NuGet.exe. Wenn Sie Ihre Pakete mithilfe von Azure Pipelines veröffentlichen möchten, verwenden Sie die aufgabe NuGet Authenticate, um sich bei Ihrem Feed zu authentifizieren. Siehe Beispiel
F: Warum funktionierte mein PAT nicht mehr?
A: Die PAT-Authentifizierung erfordert, dass Sie sich regelmäßig mit dem vollständigen Authentifizierungsfluss bei Azure DevOps anmelden. Die Anmeldung ist einmal alle 30 Tage für viele Benutzer ausreichend, sie müssen sich jedoch je nach Microsoft Entra-Konfiguration häufiger anmelden. Wenn Ihr PAT nicht mehr funktioniert, versuchen Sie zuerst, sich bei Ihrer Organisation anzumelden und die vollständige Authentifizierungsaufforderung abzuschließen. Wenn Ihr PAT immer noch nicht funktioniert, überprüfen Sie, ob sie abgelaufen ist.
Die Aktivierung der IIS Basic Authentication macht die Verwendung von PATs für Azure DevOps-Server ungültig. Weitere Informationen finden Sie unter Verwendung von IIS Basic Authentication mit Azure DevOps on-premises.
F: Gewusst wie Zugriffstasten erstellen, die nicht für Bereitstellungszwecke an eine bestimmte Person gebunden sind?
A: In Azure DevOps können Sie Zugriffsschlüssel erstellen, die nicht mit einer bestimmten Person verknüpft sind, indem Sie Dienstprinzipale oder Managed Identities verwenden. Weitere Informationen finden Sie unter Verwalten von Dienstverbindungen und Verwenden von Azure Key Vault-Secrets in Azure Pipelines.
Verwandte Artikel
- Verwenden Sie Richtlinien, um persönliche Zugriffstoken für Benutzer zu verwalten
- Widerrufen von Benutzer-PATs (für Administratoren)
- Informationen zu Sicherheit, Authentifizierung und Autorisierung
- Überprüfen der Standardberechtigungen und des Zugriffs für Azure DevOps
- Verwalten von persönlichen Zugriffstoken (PATs) mithilfe der REST API
- Verwalten von Dienstprinzipalen und verwalteten Identitäten in Azure DevOps