Comment résoudre les problèmes d'authentification Git Clone avec un jeton d'accès personnel (PAT) ?
En travaillant sur le clonage d'un dépôt à partir d'un serveur GitHub Enterprise, j'ai rencontré un problème SSL. Lorsque j'ai essayé de cloner le dépôt en utilisant HTTPS, Git m'a demandé d'entrer des identifiants, mais je n'utilisais pas une combinaison typique de nom d'utilisateur et de mot de passe car je me connecte avec des identifiants Microsoft 365. Voici le détail complet du problème et comment je l'ai résolu en utilisant un jeton d'accès personnel (PAT).
Le problème : SSL et invites d'authentification
Lorsque j'ai tenté pour la première fois de cloner le dépôt en utilisant HTTPS, j'ai rencontré deux problèmes majeurs :
- Erreur de certificat SSL : Le serveur GitHub Enterprise utilisait un certificat SSL auto-signé, ce qui a entraîné l'échec de l'opération par Git en raison d'une erreur de vérification du certificat SSL.
- Invite d'authentification : Même après avoir contourné le problème SSL, Git m'a demandé un nom d'utilisateur et un mot de passe. Comme j'utilise l'authentification unique (SSO) avec Microsoft 365, je n'avais pas de nom d'utilisateur et de mot de passe traditionnels pour le dépôt.
À ce stade, je ne pouvais pas terminer l'opération de clonage en raison du certificat SSL auto-signé et de l'absence d'identifiants standard.
Étape 1 : Contourner le problème du certificat SSL
Pour contourner temporairement le problème du certificat SSL, j'ai exécuté la commande Git suivante, qui désactive la vérification SSL :
git -c http.sslVerify=false clone https://yourcompany.domain/your-team/your-repo.git .
Cette commande indique à Git d'ignorer la vérification du certificat SSL et de poursuivre l'opération de clonage. Cependant, cela n'a pas résolu le problème d'authentification, car Git me demandait toujours un nom d'utilisateur et un mot de passe.
Étape 2 : Résoudre le problème d'authentification avec un jeton d'accès personnel (PAT)
Comme je me connectais à mon compte GitHub Enterprise en utilisant les identifiants Microsoft 365 (via SSO), je n'avais pas de combinaison nom d'utilisateur/mot de passe typique à fournir lorsque j'y étais invité. La solution consistait à utiliser un jeton d'accès personnel (PAT), que GitHub fournit pour une authentification sécurisée dans de tels cas.
Qu'est-ce qu'un jeton d'accès personnel (PAT) ?
Un jeton d'accès personnel (PAT) est un moyen plus sécurisé de s'authentifier lors de l'utilisation de Git sur HTTPS. Il fonctionne comme un mot de passe, mais il est plus flexible et plus sécurisé. Vous pouvez générer un PAT et l'utiliser à la place d'un mot de passe lorsque Git vous demande des identifiants. Vous pouvez contrôler ses autorisations (appelées scopes), ce qui en fait une option plus sûre.
Comment générer un PAT
- Connectez-vous à votre compte GitHub Enterprise.
- Accédez à Paramètres > Paramètres développeur > Jetons d'accès personnels.
- Cliquez sur Générer un nouveau jeton et sélectionnez les autorisations appropriées (scopes). Pour l'accès au dépôt, vous aurez généralement besoin du scope
repo
. - Copiez le jeton généré (PAT) et enregistrez-le dans un endroit sûr (vous ne pourrez plus le visualiser après cela).
Utiliser le PAT pour cloner le dépôt
Une fois que j'ai eu le jeton d'accès personnel, je suis retourné dans mon terminal. Lorsque Git m'a demandé un nom d'utilisateur, j'ai entré mon adresse e-mail (associée à la connexion Office 365). Lorsqu'il m'a demandé un mot de passe, j'ai collé le PAT à la place du mot de passe :
Nom d'utilisateur pour 'https://yourcompany.domain': [email protected]
Mot de passe pour 'https://[email protected]@yourcompany.domain': <collez-votre-PAT-ici>
Après cela, l'opération de clonage a parfaitement fonctionné et j'ai eu accès au dépôt.