Freigeben über


Authentifizierung mit Azure Repos

Azure DevOps Server | Azure DevOps Server 2022 - Azure DevOps Server 2019

Die sichere Authentifizierung ist von grundlegender Bedeutung für den Schutz Ihrer Azure Repos- und Azure DevOps Server Git-Repositorys. Mit mehreren verfügbaren Authentifizierungsoptionen – Microsoft Entra OAuth-Token, Persönliche Zugriffstoken und SSH-Schlüssel – stellt die Auswahl der richtigen Methode sowohl Sicherheit als auch Produktivität für Ihren Entwicklungsworkflow sicher.

Microsoft Entra OAuth-Token sind der empfohlene Ansatz für moderne Entwicklungsteams, bietet erweiterte Sicherheit über OAuth 2.0-Standards und nahtlose Integration in Unternehmensidentitätssysteme. Ganz gleich, ob Sie über die Befehlszeile arbeiten, Git-Clients verwenden oder in CI/CD-Pipelines integrieren: Durch die Auswahl einer Authentifizierungsmethode mit angemessenen Einschränkungen des Gültigkeitsbereichs können Sie Sicherheitsrisiken verringern und gleichzeitig den benötigten Zugriff beibehalten.

Widerrufen oder tauschen Sie Anmeldeinformationen immer aus, wenn sie nicht mehr benötigt werden. Diese Vorgehensweise gewährleistet die Sicherheit des Repositorys und folgt dem Prinzip der geringsten Berechtigung.

Authentifizierungsmechanismen

Microsoft Entra-Token sind die bevorzugte Authentifizierungsmethode für Git-Vorgänge und REST-APIs. Sie bieten erweiterte Sicherheitsfeatures und können überall verwendet werden, wo persönliche Zugriffstoken verwendet werden. Diese Token werden für ein Benutzerprinzipal oder ein verwaltetes Identitäts- und/oder Dienstprinzipal generiert.

Schnellstart mit Azure CLI: Sie können ein Microsoft Entra-Token für die sofortige Verwendung mit Git-Vorgängen mithilfe der Azure CLI abrufen. Diese Methode eignet sich ideal für Tests oder einmalige Vorgänge.

Für die Benutzerauthentifizierung:

 az login
 az account get-access-token --resource 499b84ac-1321-427f-aa17-267ca6975798 --query "accessToken" --output tsv

Für die Dienstprinzipalauthentifizierung:Melden Sie sich zuerst als Dienstprinzipal an, und rufen Sie dann das Token ab:

az login --service-principal -u <client-id> -p <client-secret> --tenant <tenant-id>
az account get-access-token --resource 499b84ac-1321-427f-aa17-267ca6975798 --query "accessToken" --output tsv

Beispielverwendung mit Git:

$accessToken = az account get-access-token --resource 499b84ac-1321-427f-aa17-267ca6975798 --query "accessToken" --output tsv
git -c http.extraheader="AUTHORIZATION: bearer $accessToken" clone https://dev.azure.com/{yourOrgName}/{yourProjectName}/_git/{yourRepoName}

Persönliche Zugriffstoken (Alternative Option)

Hinweis

Während persönliche Zugriffstoken weiterhin unterstützt werden, werden Microsoft Entra OAuth-Token für bessere Sicherheit und moderne Authentifizierungsmethoden empfohlen.

Persönliche Zugriffstoken (PATs) ermöglichen den Zugriff auf Azure DevOps, ohne dass Sie Ihren Benutzernamen und Ihr Kennwort direkt verwenden müssen. Diese Token laufen ab und bieten Ihnen die Möglichkeit, den Bereich der Daten, auf die sie zugreifen können, einzuschränken.

Verwenden Sie PATs in folgenden Fällen:

  • Auf Ihrem System sind keine SSH-Schlüssel eingerichtet.
  • Sie müssen die durch die Anmeldeinformationen gewährten Berechtigungen einschränken.
  • Microsoft Entra OAuth-Token sind in Ihrem Szenario nicht verfügbar

Git-Interaktionen erfordern einen Benutzernamen, der alles außer einer leeren Zeichenfolge sein kann. Um ein PAT mit HTTP-Standardauthentifizierung zu verwenden, Base64-encode Sie Ihren $MyPat wie im folgenden Codeblock aufgeführt.

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

SSH-Schlüssel

Die Schlüsselauthentifizierung mit SSH funktioniert über ein öffentliches und privates Schlüsselpaar, das Sie auf Ihrem Computer erstellen. Sie ordnen den öffentlichen Schlüssel Ihrem Benutzernamen aus dem Web zu. Azure DevOps verschlüsselt die an Sie gesendeten Daten mit diesem Schlüssel, wenn Sie mit Git arbeiten. Sie entschlüsseln die Daten auf Ihrem Computer mit dem privaten Schlüssel, der nie freigegeben oder über das Netzwerk gesendet wird.

Animierte GIF des Hinzufügens eines öffentlichen SSH-Schlüssels zu Azure DevOps

SSH ist eine großartige Option, wenn sie bereits auf Ihrem System eingerichtet ist – fügen Sie einfach einen öffentlichen Schlüssel zu Azure DevOps hinzu und klonen Sie Ihre Repositorys mit SSH. SSH kann für Linux, macOS oder Windows bevorzugt werden, die Git für Windows ausführen, die keine Git-Anmeldeinformationsmanager oder persönliche Zugriffstoken für die HTTPS-Authentifizierung verwenden können.

Weitere Informationen finden Sie unter SSH mit Azure DevOps einrichten.

Verwenden des Git Credential Manager zum Generieren von Token

Verwenden Sie die Git Credential Manager (GCM), um die Eingabe Ihrer Anmeldeinformationen jedes Mal zu vermeiden und Ihr Token beim Zugriff auf Azure Repos sicherer zu halten. Melden Sie sich beim Webportal an, generieren Sie ein Token, und verwenden Sie dann das Token als Kennwort, wenn Sie eine Verbindung mit Azure Repos herstellen. Microsoft Entra Token (bevorzugt) oder PATs werden on-demand generiert, wenn Sie den Credential Manager installiert und lokal gespeichert haben, um ihn mit der Git Kommandozeile oder einem anderen Client zu verwenden.

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

    Die 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 do durch den tatsächlichen Namen Ihres Repositorys ersetzen. Wenn Ihr Repository beispielsweise my-repobenannt ist, 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 {organization} durch den Namen Ihrer Azure DevOps-Organisation und {repository} durch den Namen Ihres Repositorys.