Freigeben über


Persönliche Zugriffstoken verwenden

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

Ein persönliches Zugriffstoken (Personal Access Token, PAT) kann als alternatives Kennwort für die Authentifizierung in Azure DevOps dienen. Dieser Artikel führt Sie durch den Prozess zum Erstellen, Verwenden, Ändern und Widerrufen von PATs für Azure DevOps.

Informationen zu PATs

Ein persönliches Zugriffstoken (PERSONAL Access Token, PAT) dient als Ihre Sicherheitsanmeldeinformationen für Azure DevOps. Dieser PAT identifiziert Sie nicht nur, sondern bestimmt auch Ihre Barrierefreiheit und den Umfang des Zugriffs. Daher sind PATs ebenso wichtig wie Kennwörter und sollten mit dem gleichen Maß an Vorsicht behandelt werden.

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

Erstellen und Verwalten von PATs auf zwei Arten:

Um PATs für Nicht-Microsoft-Tools einzurichten, können Sie entweder Git-Anmeldeinformationsmanager verwenden oder manuell generieren. Wir empfehlen Ihnen, unsere Authentifizierungsleitfaden zu überprüfen, um Ihnen bei der Auswahl des geeigneten Authentifizierungsmechanismus zu helfen. PATs dienen als einfache Alternative für kleinere Projekte, die keine umfangreiche Lösung benötigen. Sofern kein Anmeldeinformations-Manager verwendet wird, müssen Benutzer ihre Anmeldeinformationen jedes Mal eingeben.

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.

    Um beispielsweise ein Token zu erstellen, um einen Build- und Veröffentlichungs-Agent für die Authentifizierung bei Azure DevOps zu aktivieren, beschränken Sie den Umfang Ihres Tokens auf Agentpools (Lesen und Verwalten). Um Überwachungsprotokollereignisse zu lesen und Datenströme zu verwalten und 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 behalten Sie es als geheim.
  • Für Organisationen, die von der Microsoft Entra-ID unterstützt werden, müssen Sie sich innerhalb von 90 Tagen mit Ihrem neuen PAT anmelden. wird die PAT-Datei nicht inaktiv gerendert. 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 zweite 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://MyOrganization.visualstudio.com/ on MyMachine" 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 eine Azure-App Service Web App-Bereitstellung von Ihnen oder einem Administrator eingerichtet wird.
  • 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

Wenn Sie vermuten, dass ein PAT fehlerhaft ist, sollten Sie das PAT widerrufen und Ihr Kennwort ändern. Wenden Sie sich als Microsoft Entra-Benutzer an Ihren Administrator, um festzustellen, ob Ihre Organisation von einer unbekannten Quelle oder einem unbekannten Speicherort verwendet wurde. Weitere Informationen finden Sie in den häufig gestellten Fragen zu versehentlichen PAT-Check-Ins in öffentlichen GitHub-Repositorys.

Verwenden eines PAT

Ihr PAT dient als Digitale Identität, die Sie bei Verwendung darstellt, ähnlich wie ein Kennwort.

Git

Git-Interaktionen erfordern einen Benutzernamen, der alles außer der leeren Zeichenfolge sein kann. Um eine PAT mit HTTP-Standardauthentifizierung zu verwenden, verwenden Sie Base64-encode sie für $MyPat, die im folgenden Codeblock enthalten ist.

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

Um Ihr Token sicherer zu halten, verwenden Sie Anmeldeinformations-Manager, damit Sie ihre Anmeldeinformationen nicht jedes Mal eingeben müssen. Wir empfehlen Git Credential Manager. Git für Windows ist erforderlich.

Vorhandene Repositorys

Wenn Sie den Ursprung bereits mit dem Benutzernamen hinzugefügt haben, führen Sie für vorhandene Repositorys zuerst den folgenden Befehl aus.

git remote remove origin

Führen Sie andernfalls den folgenden Befehl aus.

git remote add origin https://<PAT>@<company_machineName>.visualstudio.com:/<path-to-git-repo> path to git repo = <project name>/_git/<repo_name> git push -u origin --all

Verwenden eines PAT in Ihrem Code

Sie können einen PAT in Ihrem Code verwenden.

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

Sie können einen PAT neu generieren, erweitern oder dessen Umfang ändern. Nach der Neugenerierung wird der vorherige PAT nicht autorisiert.

  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 widerrufen, aus vielen Gründen.

  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.

Häufig gestellte Fragen

F: Warum kann ich einen PAT 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: Sobald ein Benutzer aus Azure DevOps entfernt wurde, 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, dass der Benutzer seinen PAT in ein anderes Benutzer- oder Dienstkonto dreht, um die Dienste weiter 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 unserer FAQ.

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 ermutigen betroffene Benutzer, sofort abzumildern, indem wir das durchleckte 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. Einmal alle 30 Tage reicht für viele, sie müssen sich aber je nach Microsoft Entra-Konfiguration möglicherweise häufiger anmelden. Wenn Ihr PAT nicht mehr funktioniert, versuchen Sie zuerst, sich bei Ihrer Organisation anzumelden, und stellen Sie sicher, dass Sie die vollständige Authentifizierungsaufforderung durchlaufen. Wenn Ihr PAT danach immer noch nicht funktioniert, überprüfen Sie, ob Ihr PAT abgelaufen ist.