Partager via


Authentification avec Azure Repos

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

La sélection de la méthode d’authentification appropriée est essentielle pour sécuriser l’accès à vos référentiels Git Azure Repos et Azure DevOps Server. Que vous travailliez à partir d’une invite de commandes ou à l’aide d’un client Git prenant en charge HTTPS ou SSH, il est important de choisir des informations d’identification qui fournissent non seulement l’accès nécessaire, mais également de limiter l’étendue à ce qui est nécessaire pour vos tâches.

Révoquez toujours les informations d’identification lorsqu’elles ne sont plus nécessaires pour maintenir la sécurité de vos référentiels. Cette approche garantit que vous disposez de la flexibilité nécessaire pour travailler avec votre code de manière sécurisée et efficace, tout en la protégeant contre l’accès non autorisé.

Mécanismes d’authentification

Jetons OAuth Microsoft Entra

Utilisez Microsoft Entra pour générer des jetons pour accéder aux API REST . Les jetons Microsoft Entra peuvent être utilisés partout où des jetons d’accès personnels sont utilisés. Voici un conseil utile sur la façon d’obtenir un jeton d’accès unique à partir d’Azure CLI pour appeler 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}

Conseil

Envisagez plutôt d’utiliser le Gestionnaire d’informations d’identification Git (GCM) pour éviter d’entrer vos informations d’identification à chaque fois. Utilisez GCM avec le type d’informations d’identification par défaut comme Oauth pour générer des jetons Microsoft Entra.

Jetons d'accès personnels

Les jetons d’accès personnels (PATs) fournissent l’accès à Azure DevOps sans utiliser directement votre nom d’utilisateur et votre mot de passe. Ces jetons expirent et vous permettent de restreindre l’étendue des données auxquels ils peuvent accéder.

Utilisez des PAT pour vous authentifier si vous n’avez pas de clés SSH configurées sur votre système ou que vous devez limiter les autorisations accordées par les informations d’identification.

Les interactions Git nécessitent un nom d’utilisateur, qui peut être tout sauf une chaîne vide. Pour utiliser un PAT avec l'authentification de base HTTP, Base64-encode votre $MyPat comme indiqué dans le bloc de code suivant.

Dans PowerShell, entrez le code suivant.

$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

Conseil

Si vous utilisez régulièrement des PAT, examinez le Git Credential Manager (GCM) à la place pour éviter d’entrer vos informations d’identification à chaque fois. Mieux encore, explorez l'utilisation de GCM avec le type d'identifiant par défaut Oauth pour générer des jetons Microsoft Entra au lieu de PATs dans la mesure du possible.

Clés SSH

L’authentification par clé avec SSH fonctionne via une paire de clés publique et privée que vous créez sur votre ordinateur. Vous associez la clé publique à votre nom d’utilisateur à partir du web. Azure DevOps chiffre les données qui vous sont envoyées avec cette clé lors de votre utilisation de Git. Vous déchiffrez les données de votre ordinateur avec la clé privée, qui ne sera jamais partagée ou envoyée sur le réseau.

GIF animé affichant l’ajout d’une clé publique SSH sur Azure DevOps

SSH représente une excellente option, si déjà configuré sur votre système. Ajoutez tout simplement une clé publique à Azure DevOps et clonez vos référentiels à l’aide de SSH. SSH sera peut-être préféré par les utilisateurs Linux, macOS ou Windows exécutant Git pour Windows qui ne peuvent pas utiliser de gestionnaires d’informations d’identification Git ou des jetons d’accès personnels pour l’authentification HTTPS.

Pour plus d’informations, consultez Configurer SSH avec Azure DevOps.

Utiliser Le Gestionnaire d’informations d’identification Git pour générer des jetons

Utilisez le Gestionnaire d’informations d’identification Git (GCM) pour éviter d’entrer vos informations d’identification à chaque fois et de sécuriser votre jeton lors de l’accès à Azure Repos. Connectez-vous au portail web, générez un jeton, puis utilisez le jeton comme mot de passe lorsque vous vous connectez à Azure Repos. Les jetons Microsoft Entra ou paT sont générés à la demande lorsque le gestionnaire d’informations d’identification est installé et enregistré localement pour une utilisation avec la ligne de commande Git ou un autre client.

Référentiels existants

  • Supprimer l’origine existante : Si vous avez précédemment ajouté l’origine à l’aide d’un nom d’utilisateur, supprimez-la en exécutant la commande suivante :

    git remote remove origin

  • S’authentifier auprès d’un protocole PAT : Si vous rencontrez des problèmes d’authentification standard, exécutez la commande suivante pour vous authentifier via la ligne de commande :

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

    git push -u origin --all

    Le path to git repo = /_git/do fait référence à la structure de chemin d’URL utilisée dans Azure DevOps pour les dépôts Git. Le segment /_git/ indique que vous accédez à un référentiel Git et que vous devez remplacer do par le nom réel de votre référentiel. Par exemple, si votre référentiel est nommé my-repo, le chemin d’accès est '/_git/my-repo'.

  • Cloner le référentiel : Si vous utilisez Git et que vous devez vous authentifier, exécutez la commande suivante :

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

    Remplacez {organization} par le nom de votre organisation Azure DevOps et {repository} par le nom de votre dépôt.