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 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 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) ein akzeptabler und gut unterstützter Ansatz. 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 oder aktivierten Vorschaufeatures vorgenommen wurden. 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.

    Select Personal Access Tokens

  3. Wählen Sie + Neues Token aus.

    Select New Token to create

  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.

    Enter basic token information

  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.

    Select scopes for your PAT

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

    Copy the token to your clipboard

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.

    Home page, open your profile, go to Security

  3. Erstellen Sie ein persönliches Zugriffstoken.

    Add a personal access token

  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.

    Name your token, select a lifespan. If using Azure DevOps Services, select an account for your token

  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.

    Use a token as the password for your Git tools or 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 created notification

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

PAT near expiration notification

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 Integration 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, 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. Weitere Informationen zur versehentlichen Überprüfung eines PAT in einem öffentlichen GitHub-Repository finden Sie unter den Häufig gestellte Fragen.

Verwenden eines PAT

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

Git-Client

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

Wenn Sie bereits den Ursprung mithilfe des Benutzernamens hinzugefügt haben, führen Sie 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, 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 "Vollbereich"-PATs verwendet werden. Da die Erstellung vollständiger PATs eingeschränkt wird, können einige Workflows blockiert werden. Wir arbeiten daran, die betroffenen APIs zu identifizieren und zu dokumentieren und schließlich dem entsprechenden Bereich zuzuordnen. Jetzt können diese Workflows mithilfe der Zulässigen Liste nicht blockiert werden.

Wenn Sie den PAT über einen HTTP-Header bereitstellen möchten, konvertieren Sie sie zuerst in eine Base64-Zeichenfolge. Im folgenden Beispiel wird gezeigt, 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 am Anfang der Zeichenfolge ein, $ 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, empfiehlt es sich, von der grundlegenden 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 regenerieren oder erweitern und den Bereich ändern. Nach der Regeneration ist der vorherige PAT nicht mehr berechtigt.

  1. Öffnen Sie auf Ihrer Startseite Ihre Benutzereinstellungen , und wählen Sie dann "Profil" aus.

    My profile Team Services, Preview page, modify a PAT.

  2. Wählen Sie unter " Sicherheit" persönliche Zugriffstoken aus. Wählen Sie das Token aus, das Sie ändern möchten, und bearbeiten Sie dann.

    Select Edit to modify PAT

  3. Bearbeiten Sie den Tokennamen, ihre Organisation, den Ablauf des Tokens oder den Zugriffsbereich, der dem Token zugeordnet ist, und wählen Sie dann "Speichern" aus.

    Modify and Save 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.

    My profile Team Services, Preview page, revoke a PAT.

  2. Wählen Sie unter " Sicherheit" 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.

    Revoke a token or all tokens

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

    Confirm revoke

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 Verwalten von PATs mithilfe der REST-API und unserer HÄUFIG gestellte Fragen.

F: Kann ich 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 meine PAT in ein öffentliches Repository auf GitHub checke?

A: Azure DevOps sucht nach PATs, die auf GitHub in öffentliche Repositorys eingecheckt sind. Wenn wir ein gelecktes Token finden, senden wir sofort eine detaillierte E-Mail-Benachrichtigung an den Tokenbesitzer und protokollieren ein Ereignis an das Überwachungsprotokoll Ihrer Azure DevOps Organisation. Wir empfehlen betroffenen Benutzern, sofort zu verringern, indem wir die geleakte PAT drehen oder widerrufen.

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