Persönliche Zugriffstoken verwenden

Azure DevOps Services | Azure DevOps Server 2022 - Azure DevOps Server 2019 | TFS 2018

Sie können ein persönliches Zugriffstoken (PAT) als alternatives Kennwort verwenden, um sich bei Azure DevOps zu authentifizieren. In diesem Artikel zeigen wir Ihnen, wie Sie PATs für Azure DevOps erstellen, verwenden, ändern und widerrufen.

Informationen zu PATs

Ein persönliches Zugriffstoken enthält Ihre Sicherheitsanmeldeinformationen für Azure DevOps. Ein PAT identifiziert Sie, Ihre zugänglichen Organisationen und Umfänge des Zugriffs. Als solche sind sie genauso wichtig wie Passwörter und sollten daher auch so behandelt werden.

Wenn Sie in Microsoft-Tools arbeiten, ist Ihr Microsoft-Konto (MSA) oder Azure Active Directory (Azure AD) eine akzeptable und gut unterstützte Vorgehensweise. Wenn Sie jedoch mit Tools von Drittanbietern arbeiten, die Microsoft- oder Azure AD-Konten nicht unterstützen – oder Sie möchten Ihre primären Anmeldeinformationen nicht dem Tool bereitstellen – verwenden Sie PATs, um Ihr Risiko einzuschränken.

Sie können Ihre PATs auf eine der folgenden Arten erstellen und verwalten:

  • über die Benutzeroberfläche in Ihren Benutzereinstellungen, die in diesem Artikel ausführlich beschrieben wird
  • über die PAT Lifecycle Management-API

Um PATs für Nicht-Microsoft-Tools einzurichten, verwenden Sie Git-Anmeldeinformationsmanager oder erstellen Sie sie manuell. Es wird empfohlen, unsere Authentifizierungsleitfaden zu überprüfen, damit Sie den richtigen Authentifizierungsmechanismus auswählen können. Für kleinere Projekte, die eine weniger robuste Lösung erfordern, sind PATs eine einfache Alternative. Wenn Ihre Benutzer keinen Anmeldeinformationen-Manager verwenden, müssen sie jedes Mal ihre Anmeldeinformationen eingeben.

PAT erstellen

Hinweis

Die Bilder, die Sie im Webportal sehen, unterscheiden sich möglicherweise von den Bildern, die Sie in diesem Artikel sehen. Diese Unterschiede ergeben sich aus Updates, die an Azure DevOps vorgenommen wurden, oder aktivierte Vorschaufeatures. Wir haben das Feature "Neue Kontoverwaltung " aktiviert. Die grundlegenden Funktionen, die Ihnen zur Verfügung stehen, bleiben unverändert, es sei denn, sie werden explizit erwähnt.

  1. Melden Sie sich bei Ihrer Organisation an (https://dev.azure.com/{yourorganization}).

  2. Öffnen Sie auf Ihrer Startseite Die Benutzereinstellungen , und wählen Sie "Persönliche Zugriffstoken" aus.

    Screenshot mit Auswahl, Persönliche Zugriffstoken.

  3. Wählen Sie + Neues Token aus.

    Screenshot mit Auswahl, Neues 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 fest, dass es nach einer festgelegten Anzahl von Tagen automatisch abläuft.

    Screenshot des Eintrags grundlegender Tokeninformationen.

  5. Wählen Sie die Bereiche für dieses Token aus, um ihre spezifischen Aufgaben zu autorisieren.

    Wenn Sie z. B. ein Token erstellen möchten, um einen Build- und Release-Agent zur Authentifizierung bei Azure DevOps Services zu ermöglichen, beschränken Sie den Umfang Ihres Tokens auf Agentpools (Leseverwaltung&). Wenn Sie Überwachungsprotokollereignisse lesen und Datenströme verwalten und löschen möchten, wählen Sie "Überwachungsprotokoll lesen" aus, und wählen Sie dann " Erstellen" aus.

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

    Hinweis

    Möglicherweise können Sie keine uneingeschränkten PATs erstellen. Wenn dies der Fall ist, hat Ihr Azure DevOps-Administrator in Azure AD 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 ausgewählt.

  6. Wenn Sie fertig sind, kopieren Sie das Token, und speichern Sie es an einem sicheren Speicherort. Für Ihre Sicherheit wird sie nicht erneut angezeigt.

    Screenshot, der zeigt, wie Sie das Token in ihre Zwischenablage kopieren.

Warnung

Behandeln und verwenden Sie einen PAT wie Ihr Kennwort, und behalten Sie es als geheim.

  1. Melden Sie sich bei Ihrem Webportal an (https://{server}:8080/tfs/).

  2. Öffnen Sie Ihr Profil auf Ihrer Startseite. Wechseln Sie zu Ihren Sicherheitsdetails.

    Screenshot der Startseite, Öffnen Ihres Profils und der Schaltfläche

  3. Erstellen Sie ein persönliches Zugriffstoken.

    Screenshot des Hinzufügens eines persönlichen Zugriffstokens.

  4. Benennen Sie Ihr Token. Wählen Sie eine Lebensdauer für Ihr Token aus.

    Wenn Sie mehr als eine Organisation haben, können Sie auch die Organisation auswählen, in der Sie das Token verwenden möchten.

    Screenshot des Informationseintrags, einschließlich Tokenname und Lebensdauer.

  5. Wählen Sie die Bereiche für dieses Token aus, um ihre spezifischen Aufgaben zu autorisieren.

    Wenn Sie z. B. ein Token erstellen möchten, um einen Build- und Release-Agent für die Authentifizierung zu aktivieren, beschränken Sie den Umfang Ihres Tokens auf Agentpools (lesen, verwalten).

  6. Wenn Sie fertig sind, müssen Sie das Token kopieren. Für Ihre Sicherheit wird sie nicht erneut angezeigt. Verwenden Sie dieses Token als Kennwort. Klicken Sie auf Schließen.

    Screenshot mit dem erstellten Token.

Verwenden Sie Ihre PAT überall, wo Ihre Benutzeranmeldeinformationen für die Authentifizierung in Azure DevOps erforderlich sind.

Wichtig

Für Organisationen, die von Azure Active Directory unterstützt werden, verfügen Sie über 90 Tage, um sich mit Ihrem neuen PAT anzumelden, andernfalls gilt es als inaktiv. Weitere Informationen finden Sie unter Benutzeranmeldungshäufigkeit für bedingten Zugriff.

Benachrichtigungen

Benutzer erhalten zwei Benachrichtigungen während der Lebensdauer eines PAT - eine nach der Erstellung und die anderen sieben Tage vor dem Ablauf.

Nachdem Sie einen PAT erstellt haben, erhalten Sie eine Benachrichtigung ähnlich dem folgenden Beispiel. Diese Benachrichtigung bestätigt, dass Ihr PAT 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, hat ein Administrator oder Tool möglicherweise einen PAT in Ihrem Auftrag erstellt. Weitere Informationen finden Sie in den folgenden Beispielen.

  • Wenn Sie eine Verbindung mit einem Azure DevOps Git-Repo über git.exe herstellen. es erstellt ein Token mit einem Anzeigenamen wie "git: https://MyOrganization.visualstudio.com/ on MyMachine".
  • Wenn Sie oder ein Administrator eine Azure App Service Web-App-Bereitstellung einrichten, wird ein Token mit einem Anzeigenamen wie "Service Hooks: : Azure App Service: : Deploy web app" erstellt.
  • Wenn Sie oder ein Administrator Webladetests als Teil einer Pipeline einrichten, erstellt er ein Token mit einem Anzeigenamen wie "WebAppLoadTestCDIntToken".
  • Wenn eine Microsoft Teams-Integrations-Messaging-Erweiterung eingerichtet ist, erstellt sie ein Token mit einem Anzeigenamen wie "Microsoft Teams-Integration".

Warnung

Wenn Sie glauben, dass ein PAT in Fehler vorhanden ist, empfehlen wir, den PAT zu widerrufen. Ändern Sie dann Ihr Kennwort. Überprüfen Sie als Azure AD-Benutzer mit Ihrem Administrator, ob Ihre Organisation aus einer unbekannten Quelle oder einem unbekannten Speicherort verwendet wurde. Siehe auch die HÄUFIG gestellten Fragen zum versehentlichen Einchecken eines PAT auf ein öffentliches GitHub-Repository.

Verwenden eines PAT

Ihr PAT ist Ihre Identität und stellt Sie dar, wenn Sie sie verwenden, genau wie ein Kennwort.

Git-Client

Git-Interaktionen erfordern einen Benutzernamen, der nur die leere Zeichenfolge sein kann. Um eine PAT mit HTTP-Standardauthentifizierung zu verwenden, verwenden Base64-encode Sie diese, die $MyPatim folgenden Codeblock enthalten ist.

Geben Sie in PowerShell den folgenden Code ein.

$MyPat = 'yourPAT'

$B64Pat = [Convert]::ToBase64String([System.Text.Encoding]::UTF8.GetBytes("`:$MyPat"))

git -c http.extraHeader="Authorization: Basic $B64Pat" clone https://dev.azure.com/yourOrgName/yourProjectName/_git/yourRepoName


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

Vorhandene Repos

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

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.

Wenn Sie den PAT über einen HTTP-Header bereitstellen möchten, konvertieren Sie ihn zuerst in eine Base64-Zeichenfolge. Das folgende Beispiel zeigt, wie Sie mithilfe von C# in Base64 konvertieren.


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 eine $ am Anfang der Zeichenfolge wie im folgenden Beispiel hinzu.

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, empfiehlt es sich, von der einfachen Authentifizierung zu OAuth zu wechseln.

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

Wenn Sie die IIS-Standardauthentifizierung für TFS aktivieren, sind PATs ungültig. Weitere Informationen finden Sie unter Verwenden der IIS-Standardauthentifizierung mit TFS lokal.

Ändern eines PAT

Sie können einen PAT neu generieren oder erweitern und seinen Bereich ändern. Nach der Regeneration ist der vorherige PAT nicht mehr 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 es dann.

    Screenshot mit hervorgehobener Schaltfläche 'Bearbeiten', um PAT zu ändern.

  3. Bearbeiten Sie den Tokennamen, die Organisation, die sie anwendet, auf tokenablauf oder den Zugriffsbereich, der dem Token zugeordnet ist, und wählen Sie dann "Speichern" aus.

    Screenshot mit gespeicherter PAT.

Widerrufen eines PAT

Sie können einen PAT jederzeit aus verschiedenen Gründen widerrufen.

  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: 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 Azure Active Directory (Azure AD) verbunden ist, wird der PAT auch in Azure AD ungültig, da er zum Benutzer gehört. Es wird empfohlen, dass der Benutzer seinen PAT auf ein anderes Benutzer- oder Dienstkonto dreht, um Dienste weiterhin auszuführen.

F: Gibt es eine Möglichkeit, einen PAT über REST-API zu verlängern?

A: Ja, es gibt eine Möglichkeit, PATs mithilfe unserer PAT Lifecycle Management-APIs zu verlängern, zu verwalten und zu erstellen. Weitere Informationen finden Sie unter Manage PATs using REST API and our 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 versehentlich meinen PAT in ein öffentliches Repository auf GitHub checke?

A: Azure DevOps sucht nach PATs, die in öffentlichen Repositorys auf GitHub eingecheckt sind. 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. Wir empfehlen betroffenen Benutzern, sofort zu entschärfen, indem wir die geleerte PAT drehen oder widerrufen.

Es gibt eine Richtlinie zum Verwalten von geleckten PATs! Weitere Informationen finden Sie unter "Widerrufen von durchleckten PATs automatisch".

F: Kann ich ein persönliches Zugriffstoken als ApiKey verwenden, um NuGet-Pakete mithilfe der Befehlszeile dotnet/nuget.exe in einem Azure Artefakte-Feed zu veröffentlichen?

A: Nein. Azure Artefakte unterstützen das Übergeben eines persönlichen Zugriffstokens nicht als ApiKey. Wenn Sie eine lokale Entwicklungsumgebung verwenden, sollten Sie den Azure Artifacts-Anmeldeinformationsanbieter installieren, um sich mit Azure-Artefakten zu authentifizieren. Weitere Informationen finden Sie unter dotnet und 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.