Condividi tramite


Autenticazione con Azure Repos

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

La selezione del metodo di autenticazione corretto è fondamentale per l'accesso sicuro ai repository Git di Azure Repos e Azure DevOps Server. Indipendentemente dal fatto che si stia lavorando da un prompt dei comandi o si usi un client Git che supporta HTTPS o SSH, è importante scegliere le credenziali che non solo forniscono l'accesso necessario, ma limitano anche l'ambito alle esigenze delle attività.

Revocare sempre le credenziali quando non sono più necessarie per mantenere la sicurezza dei repository. Questo approccio garantisce la flessibilità necessaria per lavorare con il codice in modo sicuro ed efficiente, garantendo al tempo stesso la protezione da accessi non autorizzati.

Meccanismi di autenticazione

Token OAuth di Microsoft Entra

Usare Microsoft Entra per generare token per l'accesso alle API REST . I token Microsoft Entra possono essere usati ovunque vengano usati i token di accesso personale. Ecco un suggerimento utile su come ottenere un token di accesso monouso dall'interfaccia della riga di comando di Azure per chiamare 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}

Consiglio

Esaminare invece il Git Credential Manager (GCM) per evitare di immettere le credenziali ogni volta. Usare GCM con il tipo di credenziale predefinito come Oauth per generare token Microsoft Entra.

Token di accesso personali

I token di accesso personali (PAT) forniscono l'accesso ad Azure DevOps senza dover utilizzare direttamente il nome utente e la password. Questi token scadono e consentono di limitare l'ambito dei dati a cui possono accedere.

Usare le connessioni CONT per eseguire l'autenticazione se non si dispone di chiavi SSH configurate nel sistema o se è necessario limitare le autorizzazioni concesse dalle credenziali.

Le interazioni Git richiedono un nome utente, che può essere qualsiasi cosa tranne una stringa vuota. Per usare un token di accesso personale con l'autenticazione di base HTTP, Base64-encode il tuo $MyPat come illustrato nel blocco di codice seguente.

In PowerShell immettere il codice seguente.

$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

Consiglio

Se si usano regolarmente IT, esaminare il Git Credential Manager (GCM) per evitare di immettere le credenziali ogni volta. Ancora meglio, esplorare l'uso di GCM con il tipo di credenziale predefinito come Oauth per generare token Microsoft Entra invece dei token PAT ogni volta che possibile.

Chiavi SSH

L'autenticazione della chiave con SSH funziona tramite una coppia di chiavi pubblica e privata creata nel computer. Associare la chiave pubblica al proprio nome utente dal Web. Azure DevOps crittograferà i dati inviati all'utente con tale chiave quando si usa Git. È possibile decrittografare i dati nel computer con la chiave privata, che non viene mai condivisa o inviata in rete.

GIF animata che mostra l'aggiunta di una chiave pubblica SSH ad Azure DevOps

SSH è un'ottima opzione se è già stata configurata nel sistema, è sufficiente aggiungere una chiave pubblica ad Azure DevOps e clonare i repository usando SSH. SSH potrebbe essere preferibile per chi utilizza Linux, macOS o Windows ed esegue Git per Windows, ma non può usare i manager delle credenziali Git o i token di accesso personali per l'autenticazione HTTPS.

Per altre informazioni, vedere Configurare SSH con Azure DevOps.

Usare Git Credential Manager per generare token

Usare il Git Credential Manager (GCM) per evitare di immettere le credenziali ogni volta e mantenere il token più sicuro quando si accede ad Azure Repos. Accedere al portale Web, generare un token e quindi usare il token come password quando ci si connette ad Azure Repos. I token Microsoft Entra o PAT vengono generati su richiesta quando il gestore delle credenziali è installato e salvato localmente per l'uso con la riga di comando Git o un altro client.

Repository esistenti

  • Rimuovi origine esistente: Se in precedenza è stata aggiunta l'origine usando un nome utente, rimuoverla eseguendo il comando seguente:

    git remote remove origin

  • Autentica con un token di accesso personale: Se si verificano problemi con l'autenticazione standard, esegui il comando seguente per autenticarti dalla riga di comando:

    git remote add origin https://dev.azure.com/<PAT>@<company_machineName>:/<project-name>/_git/<repo_name>

    git push -u origin --all

    Il path to git repo = /_git/do fa riferimento alla struttura del percorso URL usata nei repository Azure DevOps per Git. Il segmento /_git/ indica che si accede a un repository Git ed è necessario sostituire do con il nome effettivo del repository. Ad esempio, se il repository è denominato my-repo, il percorso sarà '/_git/my-repo'.

  • Clona il repository: Se utilizzi Git e devi autenticarti, esegui il seguente comando:

    git clone https://{organization}@dev.azure.com/{organization}/_git/{repository}

    Sostituire {organization} con il nome dell'organizzazione di Azure DevOps e {repository} con il nome del repository.