Partager via


Authentification avec Azure Repos

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

L’authentification sécurisée est essentielle pour protéger vos référentiels Git Azure Repos et Azure DevOps Server. Avec plusieurs options d’authentification disponibles ( jetons Microsoft Entra OAuth, jetons d’accès personnels et clés SSH), le choix de la méthode appropriée garantit la sécurité et la productivité de votre flux de travail de développement.

Les jetons Microsoft Entra OAuth sont l’approche recommandée pour les équipes de développement modernes, offrant une sécurité renforcée via des normes OAuth 2.0 et une intégration transparente avec les systèmes d’identité d’entreprise. Que vous travailliez à partir de la ligne de commande, à l’aide de clients Git ou que vous intégriez des pipelines CI/CD, la sélection d’une méthode d’authentification avec des limites d’étendue appropriées réduit les risques de sécurité tout en conservant l’accès dont vous avez besoin.

Révoquez ou changez les identifiants lorsqu'ils ne sont plus nécessaires. Cette pratique maintient la sécurité des référentiels et suit le principe de l’accès au privilège minimum.

Mécanismes d’authentification

Les jetons Microsoft Entra sont la méthode d’authentification préférée pour les opérations Git et les API REST. Ils offrent des fonctionnalités de sécurité améliorées et peuvent être utilisés partout où les jetons d’accès personnels sont utilisés. Ces jetons sont générés pour un principal d'utilisateur, une identité gérée et/ou un principal de service.

Démarrage rapide avec Azure CLI : vous pouvez obtenir un jeton Microsoft Entra pour une utilisation immédiate avec les opérations Git à l’aide d’Azure CLI. Cette méthode est idéale pour les tests ou les opérations ponctuelles.

Pour l’authentification utilisateur :

 az login
 az account get-access-token --resource 499b84ac-1321-427f-aa17-267ca6975798 --query "accessToken" --output tsv

Pour l’authentification du principal de service :Commencez par vous connecter en tant que principal de service, puis obtenez le jeton :

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

Exemple d’utilisation avec 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}

Jetons d’accès personnels (option alternative)

Remarque

Bien que les jetons d’accès personnel soient toujours pris en charge, les jetons Microsoft Entra OAuth sont recommandés pour une meilleure sécurité et des pratiques d’authentification modernes.

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 auxquelles ils peuvent accéder.

Utilisez des PATs quand :

  • Vous n’avez pas de clés SSH configurées sur votre système
  • Vous devez limiter les autorisations accordées par les identifiants
  • Les jetons Microsoft Entra OAuth ne sont pas disponibles dans votre scénario

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

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 envoyées avec cette clé lorsque vous travaillez avec 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 est une excellente option s’il est déjà configuré sur votre système. Il vous suffit d’ajouter une clé publique à Azure DevOps et de cloner vos dépôts à l’aide de SSH. SSH peut être préféré pour Linux, macOS ou Windows exécutant Git pour Windows qui ne peut pas utiliser des 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 (préférés) 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.