Uwierzytelnianie za pomocą usługi Azure Repos
Azure DevOps Services | Azure DevOps Server 2022 — Azure DevOps Server 2019
Wybór właściwej metody uwierzytelniania ma kluczowe znaczenie dla bezpiecznego dostępu do repozytoriów Git usługi Azure Repos i usługi Azure DevOps Server. Niezależnie od tego, czy pracujesz z poziomu wiersza polecenia, czy przy użyciu klienta Git obsługującego protokół HTTPS lub SSH, ważne jest, aby wybrać poświadczenia, które nie tylko zapewniają niezbędny dostęp, ale także ograniczyć zakres do tego, co jest potrzebne dla zadań.
Zawsze odwoływanie poświadczeń, gdy nie są już wymagane do zachowania bezpieczeństwa repozytoriów. Takie podejście zapewnia elastyczność pracy z kodem w bezpieczny i wydajny sposób, jednocześnie chroniąc go przed nieautoryzowanym dostępem.
Mechanizmy uwierzytelniania
Tokeny protokołu OAuth firmy Microsoft Entra
Użyj Microsoft Entra, aby wygenerować tokeny, aby uzyskać dostęp do interfejsów API REST . Tokeny firmy Microsoft Entra mogą być używane wszędzie tam, gdzie są używane osobiste tokeny dostępu. Oto pomocna porada, jak uzyskać jednorazowy token dostępu z Azure CLI, aby wywołać funkcję git fetch:
$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}
Napiwek
Przyjrzyj się Oauth
, aby wygenerować tokeny firmy Microsoft Entra.
Osobiste tokeny dostępu
Tokeny osobistego dostępu (PATs) zapewniają dostęp do usługi Azure DevOps bez bezpośredniego używania nazwy użytkownika i hasła. Te tokeny wygasają i umożliwiają ograniczenie zakresu danych, do których mogą uzyskiwać dostęp.
Użyj paT do uwierzytelniania, jeśli nie masz skonfigurowanych kluczy SSH w systemie lub musisz ograniczyć uprawnienia przyznane przez poświadczenie.
Interakcje z usługą Git wymagają nazwy użytkownika, która może być niczym innym niż pusty ciąg. Aby użyć PAT z uwierzytelnianiem podstawowym HTTP, wykonaj Base64-encode
$MyPat
, jak pokazano w poniższym bloku kodu.
W programie PowerShell wprowadź następujący kod.
$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
Napiwek
Jeśli regularnie używasz PAT, rozważ użycie Git Credential Manager (GCM) zamiast tego, aby uniknąć wprowadzania poświadczeń za każdym razem. Jeszcze lepiej, rozważ użycie usługi GCM z domyślnym typem poświadczeń, takiego jak Oauth
, w celu wygenerowania tokenów Microsoft Entra zamiast PATs, kiedy tylko jest to możliwe.
Klucze SSH
Uwierzytelnianie klucza za pomocą protokołu SSH działa za pośrednictwem pary kluczy publicznych i prywatnych tworzonych na komputerze. Klucz publiczny należy skojarzyć z nazwą użytkownika z sieci Web. Usługa Azure DevOps zaszyfruje dane wysyłane do Ciebie przy użyciu tego klucza podczas pracy z usługą Git. Dane można odszyfrować na komputerze przy użyciu klucza prywatnego, który nigdy nie jest udostępniany lub wysyłany przez sieć.
Protokół SSH jest doskonałym rozwiązaniem, jeśli masz już konfigurację w systemie — wystarczy dodać klucz publiczny do usługi Azure DevOps i sklonować repozytoria przy użyciu protokołu SSH. Preferowane może być użycie protokołu SSH w systemach Linux, macOS lub Windows z systemem Git dla systemu Windows, którzy nie mogą używać menedżerów poświadczeń usługi Git lub osobistych tokenów dostępu na potrzeby uwierzytelniania HTTPS.
Aby uzyskać więcej informacji, zobacz Konfigurowanie protokołu SSH przy użyciu usługi Azure DevOps.
Generowanie tokenów przy użyciu menedżera poświadczeń usługi Git
Użyj Git Credential Manager (GCM), aby uniknąć wprowadzania poświadczeń za każdym razem i zachować bezpieczeństwo tokenu podczas uzyskiwania dostępu do usługi Azure Repos. Zaloguj się do portalu internetowego, wygeneruj token, a następnie użyj tokenu jako hasła podczas nawiązywania połączenia z usługą Azure Repos. Tokeny Microsoft Entra lub PAT są generowane na żądanie, gdy masz zainstalowanego menedżera poświadczeń i zapisanego lokalnie do użycia z wierszem polecenia Git albo innym klientem.
Istniejące repozytoria
Usuń istniejące źródło: Jeśli wcześniej dodano źródło przy użyciu nazwy użytkownika, usuń go, uruchamiając następujące polecenie:
git remote remove origin
Uwierzytelnij się za pomocą PAT: Jeśli wystąpią problemy ze standardowym uwierzytelnianiem, uruchom następujące polecenie, aby uwierzytelnić się przy użyciu wiersza polecenia:
git remote add origin https://dev.azure.com/<PAT>@<company_machineName>:/<project-name>/_git/<repo_name>
git push -u origin --all
path to git repo = /_git/do
odnosi się do struktury ścieżki adresu URL używanej w usłudze Azure DevOps dla repozytoriów Git. Segment/_git/
wskazuje, że uzyskujesz dostęp do repozytorium Git i należy zastąpićdo
rzeczywistą nazwą repozytorium. Jeśli na przykład repozytorium ma nazwęmy-repo
, ścieżka to "/_git/my-repo
".Klonowanie repozytorium: Jeśli używasz Git i musisz się uwierzytelnić, uruchom następujące polecenie:
git clone https://{organization}@dev.azure.com/{organization}/_git/{repository}
Zastąp
{organization}
nazwą organizacji usługi Azure DevOps i{repository}
nazwą repozytorium.