Verwenden von persönlichen Zugriffstoken

Azure DevOps Services | Azure DevOps Server 2020 | Azure DevOps Server 2019 | TFS 2018

Sie können ein persönliches Zugriffstoken (PAT) als alternatives Kennwort verwenden, um sich in 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 barrierefreien Organisationen und Bereiche des Zugriffs. So sind sie so wichtig wie Kennwörter, sodass Sie sie genauso behandeln sollten.

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 zu beschränken.

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

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

Um PATs für Nicht-Microsoft-Tools einzurichten, verwenden Sie Git-Anmeldeinformationen-Manager oder erstellen Sie sie manuell. Wir empfehlen Ihnen, unsere Authentifizierungsleitlinien zu überprüfen, um Ihnen bei der Auswahl des richtigen Authentifizierungsmechanismus zu helfen. Für kleinere Projekte, die eine weniger robuste Lösung erfordern, sind PATs eine einfache Alternative. Es sei denn, Ihre Benutzer verwenden einen Anmeldeinformationen-Manager, müssen sie jedes Mal ihre Anmeldeinformationen eingeben.

PAT erstellen

Hinweis

Die Von Ihrem Webportal angezeigten Bilder unterscheiden sich möglicherweise von den in diesem Artikel angezeigten Bildern. Diese Unterschiede ergeben sich aus Updates, die an Azure DevOps vorgenommen wurden, oder aktivierte Vorschaufeatures. Wir haben das Feature "Neue Konto-Manager"-Seite aktiviert. Die grundlegende Funktionalität, die Ihnen zur Verfügung steht, bleibt unverändert, sofern nicht 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 dann "Persönliche Zugriffstoken" aus.

    Persönliche Zugriffstoken auswählen

  3. Wählen Sie + Neues Token aus.

    Wählen Sie neues Token aus, das erstellt werden soll

  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 nach einer festgelegten Anzahl von Tagen automatisch ab.

    Geben Sie grundlegende Tokeninformationen ein.

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

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

    Wählen Sie Bereiche für Ihr PAT aus.

    Hinweis

    Möglicherweise sind Sie auf das Erstellen vollständiger PATs beschränkt. Wenn ja, 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 Verwalten von PATs mit Richtlinien/Einschränken der Erstellung vollständiger PATs. Für ein benutzerdefiniertes PAT ist der erforderliche Umfang für den Zugriff auf die Komponenten-Governance-API vso.governancenicht in der Benutzeroberfläche ausgewählt.

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

    Kopieren des Token in Die Zwischenablage

Warnung

Behandeln und Verwenden eines 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 auf Ihrer Startseite Ihr Profil. Wechseln Sie zu Ihren Sicherheitsdetails.

    Startseite, Öffnen Ihres Profils, wechseln Sie zu Security

  3. Erstellen Sie ein persönliches Zugriffstoken.

    Hinzufügen eines persönlichen Zugriffstokens

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

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

    Benennen Sie Ihr Token, wählen Sie eine Lebensdauer aus. Wenn Sie Azure DevOps Services verwenden, wählen Sie ein Konto für Ihr Token aus.

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

    Wenn Sie beispielsweise ein Token erstellen möchten, um einen Build- und Release-Agent zum Authentifizieren zu aktivieren, beschränken Sie den Umfang Ihres Token auf Agentpools (lesen, verwalten).

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

    Verwenden eines Token als Kennwort für Ihre Git-Tools oder -Apps

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 Benutzeranmeldungsfrequenz 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 Ablauf.

Nachdem Sie ein PAT erstellt haben, erhalten Sie eine Benachrichtigung ähnlich wie im folgenden Beispiel. Diese Benachrichtigung bestätigt, dass Ihr PAT Ihrer Organisation hinzugefügt wurde.

PAT erstellte Benachrichtigung

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

PAT in der Ablaufbenachrichtigung

Unerwartete Benachrichtigung

Wenn Sie eine unerwartete PAT-Benachrichtigung erhalten, hat möglicherweise ein Administrator oder Tool einen PAT im 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, erstellt sie ein Token mit einem Anzeigenamen wie "Service Hooks: : Azure App Service: Bereitstellen von Web-App".
  • Wenn Sie oder ein Administrator Weblastentests als Teil einer Pipeline einrichten, erstellt er ein Token mit einem Anzeigenamen wie "WebAppLoadTestCDIntToken".
  • Wenn eine Microsoft Teams-Integrationsnachrichtenerweiterung 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, dass Sie das PAT 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 gestellte 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 es verwenden, genau wie ein Kennwort.

Git

Git-Interaktionen erfordern einen Benutzernamen, der außer der leeren Zeichenfolge alles sein kann. Das PAT wird als Kennwort verwendet. Außerdem müssen Sie base64-codieren, um den Benutzernamen und PAT zu codieren, um die HTTP-Basisauthentifizierung zu verwenden.

Geben Sie in PowerShell den folgenden Code ein.

$MyPat = ':PatStringFromWebUI'
$UserName = ':UserNameToUseWithToken'
$B64Pat = [Convert]::ToBase64String([System.Text.Encoding]::UTF8.GetBytes("$UserName:$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 Anmeldeinformationen-Manager, damit Sie Ihre Anmeldeinformationen nicht jedes Mal eingeben müssen. Git Credential Manager wird empfohlen. Git für Windows ist erforderlich.

$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

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, beachten Sie jedoch die folgende Warnung.

Warnung

Einige unserer öffentlichen APIs sind derzeit nicht mit einem PAT-Bereich verknüpft und können daher nur mit "vollbereichsbezogenen" PATs verwendet werden. Aus diesem Gründen kann das Einschränken der Erstellung vollständiger PATs einige Workflows blockieren. Wir arbeiten daran, die betroffenen APIs zu identifizieren und zu dokumentieren und sie schließlich dem entsprechenden Bereich zuzuordnen. Diese Workflows können jetzt mithilfe der Zulassungsliste aufgehoben werden.

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.

    Meine Profilteamdienste, Vorschauseite, Ändern eines PAT.

  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.

    Wählen Sie

  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.

    Ändern und Speichern von 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.

    Meine Profilteamdienste, Vorschauseite, widerrufen einen 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.

    Widerrufen eines Tokens oder aller Token

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

    Widerrufen bestätigen

Häufig gestellte Fragen

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, empfiehlt es sich, den Azure Artefakte-Anmeldeinformationsanbieter zu installieren, um sich bei Azure-Artefakten 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.