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.

Wenn Sie Microsoft-Tools verwenden, ist Ihr Microsoft-Konto (MSA) oder Microsoft Entra ID eine anerkannte und unterstützte Methode. Wenn Sie Nicht-Microsoft-Tools verwenden, die keine Microsoft- oder Microsoft Entra-Konten unterstützen, oder wenn Sie Ihre primären Anmeldeinformationen nicht mit diesen Tools teilen möchten, sind PATs eine geeignete Alternative.

Dieser Artikel führt Sie durch das Erstellen, Verwenden, Ändern und Widerrufen von PATs für Azure DevOps.

Sie können PATs mit den folgenden Methoden verwalten:

Um PATs für Nicht-Microsoft-Tools einzurichten, können Sie Git-Anmeldeinformationsmanager verwenden oder manuell generieren. Wir empfehlen, unsere Authentifizierungsleitfaden zu überprüfen, um den geeigneten Authentifizierungsmechanismus auszuwählen. PATs bieten eine einfache Alternative für kleinere Projekte, für die keine umfangreiche Lösung erforderlich ist. Ohne Anmeldeinformationsverwaltung geben Benutzer jedes Mal ihre Anmeldeinformationen ein.

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.
    • 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.
    • Je nach den Aufgaben, die Sie mit dem PAT ausführen möchten, benötigen Sie möglicherweise zusätzliche Berechtigungen. Beispiel:
      • Build: Lesen und Ausführen
      • Code: Lesen, Schreiben und Verwalten
      • Umgebung: Lesen und Verwalten
      • Projekt und Team: Lesen, Schreiben und Verwalten
      • Variable Gruppen: Lesen und Erstellen
  • Zugriffsebenen: Verfügen Sie über mindestens einfachen Zugriff.
  • Bewährte Methoden für die Sicherheit: Machen Sie sich mit bewährten Methoden für die Verwaltung von PATs vertraut, z. B. nur bei Bedarf, und drehen Sie sie regelmäßig.

PAT erstellen

  1. Melden Sie sich bei Ihrem organization (https://dev.azure.com/{Your_Organization}) an.

  2. Öffnen Sie über die Startseite Ihre Benutzereinstellungen , und wählen Sie dann Persönliche Zugriffstoken aus.

    Screenshot mit Auswahl, Persönliche Zugriffstoken.

  3. Wählen Sie + Neues Token aus.

    Screenshot mit auswahl, New Token.

  4. 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.

    Screenshot, der den Eintrag grundlegender Tokeninformationen zeigt.

  5. 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.

    Screenshot mit ausgewählten Bereichen für einen PAT.

    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.governancenicht in der Benutzeroberfläche auswählbar.

  6. Kopieren Sie danach das Token, und speichern Sie es an einem sicheren Speicherort. Für Ihre Sicherheit wird sie nicht mehr angezeigt.

    Screenshot, der zeigt, wie das Token in die Zwischenablage kopiert wird.

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.

Screenshot der erstellten PAT-Benachrichtigung.

Die folgende Abbildung zeigt ein Beispiel für die siebentägige Benachrichtigung, bevor Ihr PAT abläuft.

Screenshot mit PAT near expiration notification.

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. Nachfolgend finden Sie 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 namens "WebAppLoadTestCDIntToken" wird erstellt, wenn Webladetests als Teil einer Pipeline von Ihnen oder einem Administrator eingerichtet werden.
  • Ein Token namens "Microsoft Teams-Integration" wird erstellt, wenn eine Microsoft Teams-Integrations-Messaging-Erweiterung eingerichtet ist.

Warnung

  • Widerrufen Sie den PAT, wenn Sie vermuten, dass er fehlerhaft ist. Führen Sie die Schritte aus, um das PAT zu widerrufen und Ihr Kennwort zu ändern.
  • Wenden Sie sich an Ihren Administrator, wenn Sie ein Microsoft Entra-Benutzer sind, um festzustellen, ob auf Ihre Organisation von einer unbekannten Quelle oder einem unbekannten Speicherort zugegriffen wurde.
  • Ü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.

Git

Git-Interaktionen erfordern einen Benutzernamen, der alles außer einer leeren Zeichenfolge sein kann. Wenn Sie eine PAT mit HTTP-Standardauthentifizierung verwenden möchten, Base64-encode sehen Sie $MyPat dies wie im folgenden Codeblock gezeigt.

Geben Sie in PowerShell den folgenden Code ein.

$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

Verwenden Sie Anmeldeinformationsmanager, um die Eingabe Ihrer Anmeldeinformationen jedes Mal zu vermeiden und Ihr Token sicherer zu halten:

Vorhandene Repositorys

  • Vorhandenen Ursprung entfernen: Wenn Sie den Ursprung zuvor mit einem Benutzernamen hinzugefügt haben, entfernen Sie ihn, indem Sie den folgenden Befehl ausführen:

    git remote remove origin

  • Authentifizieren mit einem PAT: Wenn Probleme mit der Standardauthentifizierung auftreten, führen Sie den folgenden Befehl aus, um sich über die Befehlszeile zu authentifizieren:

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

    git push -u origin --all

    Dies path to git repo = /_git/do bezieht sich auf die URL-Pfadstruktur, die in Azure DevOps für Git-Repositorys verwendet wird. Das /_git/ Segment gibt an, dass Sie auf ein Git-Repository zugreifen, und Sie sollten durch den tatsächlichen Namen Ihres Repositorys ersetzen do . Wenn Ihr Repository beispielsweise benannt my-repoist, lautet der Pfad "/_git/my-repo".

  • Klon-Repository: Wenn Sie Git verwenden und sich authentifizieren müssen, führen Sie den folgenden Befehl aus:

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

    Ersetzen Sie den {organization} Namen Ihrer Azure DevOps-Organisation und {repository} den Namen Ihres Repositorys.

Verwenden eines PAT in Ihrem Code

Sie können einen PAT in Ihrem Code verwenden, um API-Anforderungen 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());
   }
}

Wenn Ihr Code funktioniert, ist es ein guter Zeitpunkt, von der einfachen Authentifizierung zu OAuth zu wechseln.

Weitere Informationen und Beispiele für die Verwendung von PATs finden Sie in den folgenden Artikeln:

Ä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.
  1. Öffnen Sie auf Ihrer Startseite Ihre Benutzereinstellungen, und wählen Sie dann "Profil" aus.

    Screenshot der Reihenfolge der Schaltflächen, die zum Ändern eines PAT ausgewählt werden sollen.

  2. 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.

    Screenshot der hervorgehobenen Schaltfläche

  3. Bearbeiten Sie den Tokennamen, den Tokenablauf oder den Bereich des Zugriffs, der dem Token zugeordnet ist, und wählen Sie dann "Speichern" aus.

    Screenshot mit geändertem PAT.

Widerrufen eines PAT

Sie können einen PAT jederzeit aus diesen und anderen Gründen widerrufen:

  • Widerrufen Sie einen PAT, wenn Sie vermuten, dass sie kompromittiert ist.
  • Widerrufen Sie einen PAT, wenn er nicht mehr benötigt wird.
  • Widerrufen Sie einen PAT, um Sicherheitsrichtlinien oder Complianceanforderungen zu erzwingen.
  1. Öffnen Sie auf Ihrer Startseite Ihre Benutzereinstellungen, und wählen Sie dann "Profil" aus.

    Screenshot der Reihenfolge der Schaltflächen zum Auswählen, Teamdienste, Vorschauseite und Widerrufen eines PAT.

  2. 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.

    Screenshot, der die Auswahl zeigt, um ein einzelnes Token oder alle Token zu widerrufen.

  3. Wählen Sie im Bestätigungsdialogfeld "Widerrufen " aus.

    Screenshot des Bestätigungsbildschirms zum Widerrufen von PAT.

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 geheimen Erkennungstools, die über unsere Partnerangebote verfügbar sind, z . B. GitHub Advanced Security für Azure DevOps. 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.

Häufig gestellte Fragen

F: Warum kann ich einen PAT-Bereich nicht bearbeiten oder neu erstellen, der auf eine einzelne Organisation ausgerichtet ist?

A: Stellen Sie sicher, dass Sie bei der Organisation angemeldet sind, auf die Ihr PAT-Bereich eingestellt ist. Sie können alle Ihre PATs anzeigen, während Sie bei jeder Organisation in derselben Microsoft Entra-ID angemeldet sind, aber Sie können organisationsbezogene Token nur bearbeiten, wenn Sie bei der Organisation angemeldet sind, auf die sie ausgerichtet 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, es gibt eine Möglichkeit, PATs mithilfe unserer PAT Lifecycle Management-APIs zu erneuern, zu verwalten und zu erstellen. Weitere Informationen finden Sie unter Verwalten von PATs mithilfe der REST-API und faQs.

F: Kann ich die grundlegende Authentifizierung mit allen Azure DevOps-REST-APIs verwenden?

A: Nein. Sie können die grundlegende Authentifizierung mit den meisten Azure DevOps-REST-APIs verwenden, Organisationen und Profile unterstützen jedoch nur OAuth. Weitere Informationen 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 die Übergabe eines persönlichen Zugriffstokens als ApiKey nicht. Bei Verwendung einer lokalen Entwicklungsumgebung wird empfohlen, den Azure Artifacts-Anmeldeinformationsanbieter zu installieren, um sich bei Azure Artifacts zu authentifizieren. 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 NuGet-Authentifizierungsaufgabe, um sich mit Ihrem Feedbeispiel zu authentifizieren.

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.

F: Gewusst wie Zugriffstasten erstellen, die nicht für Bereitstellungszwecke an eine bestimmte Person gebunden sind?

A: In Azure DevOps können Sie Zugriffstasten erstellen, die nicht mit einer bestimmten Person verknüpft sind, indem Sie Dienstprinzipale verwenden oder Identitäten verwalten. Weitere Informationen finden Sie unter Verwalten von Dienstverbindungen, Verwenden von Geheimschlüsseln in Azure Key Vault in Azure Pipelines.