Nota
L'accesso a questa pagina richiede l'autorizzazione. È possibile provare ad accedere o modificare le directory.
L'accesso a questa pagina richiede l'autorizzazione. È possibile provare a modificare le directory.
Azure DevOps Services | Azure DevOps Server | Azure DevOps Server 2022 | Azure DevOps Server 2020
L'autenticazione sicura è fondamentale per proteggere i repository Git di Azure Repos e Azure DevOps Server. Con più opzioni di autenticazione disponibili, ovvero token OAuth di Microsoft Entra, token di accesso personale e chiavi SSH, la scelta del metodo corretto garantisce sia la sicurezza che la produttività per il flusso di lavoro di sviluppo.
I token OAuth di Microsoft Entra sono l'approccio consigliato per i team di sviluppo moderni, offrendo sicurezza avanzata tramite gli standard OAuth 2.0 e l'integrazione senza problemi con i sistemi di gestione delle identità aziendali. Sia che si stia lavorando dalla riga di comando, usando i client Git o l'integrazione con pipeline CI/CD, selezionando un metodo di autenticazione con limiti di ambito appropriati si riducono i rischi di sicurezza mantenendo al tempo stesso l'accesso necessario.
Revocare o ciclare sempre le credenziali quando non sono più necessarie. Questa procedura mantiene la sicurezza del repository e segue il principio dell'accesso con privilegi minimi.
Meccanismi di autenticazione
Token OAuth di Microsoft Entra (scelta consigliata)
I token Microsoft Entra sono il metodo di autenticazione preferito per le operazioni Git e le API REST. Offrono funzionalità di sicurezza avanzate e possono essere usate ovunque vengano usati i token di accesso personale. Questi token vengono generati per un principale utente o un'identità gestita e/o un principale del servizio.
Avvio rapido con l'interfaccia della riga di comando di Azure: è possibile ottenere un token Microsoft Entra per un uso immediato con le operazioni Git usando l'interfaccia della riga di comando di Azure. Questo metodo è ideale per i test o le operazioni monouso.
Per l'autenticazione utente:
az login
az account get-access-token --resource 499b84ac-1321-427f-aa17-267ca6975798 --query "accessToken" --output tsv
Per l'autenticazione dell'entità servizio: Accedere prima come entità servizio, quindi ottenere il token:
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
Esempio di utilizzo con 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}
Token di accesso personali (opzione alternativa)
Annotazioni
Anche se i token di accesso personale sono ancora supportati, i token OAuth di Microsoft Entra sono consigliati per una migliore sicurezza e procedure di autenticazione moderne.
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 i token di accesso personale (PAT) quando:
- Le chiavi SSH non sono configurate nel sistema
- È necessario limitare le autorizzazioni concesse dalle credenziali
- I token OAuth di Microsoft Entra non sono disponibili nello scenario
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.
- Windows
- Linux/macOS
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
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 crittografa i dati inviati 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.
SSH è un'ottima opzione se è già configurata nel sistema, basta aggiungere una chiave pubblica ad Azure DevOps e clonare i repository usando SSH. SSH potrebbe essere preferibile per Linux, macOS o Windows che esegue Git per Windows che non può usare i gestori di 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 (preferiti) o i token 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 originAutentica 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 --allIl
path to git repo = /_git/dofa 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 sostituiredocon il nome effettivo del repository. Ad esempio, se il repository è denominatomy-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.