Udostępnij za pośrednictwem


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ę Git Credential Manager (GCM), aby uniknąć wprowadzania poświadczeń za każdym razem. Użyj usługi GCM z domyślnym typem poświadczeń jako 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ć.

Animowany plik GIF przedstawiający dodawanie klucza publicznego SSH do usługi Azure DevOps

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.