Grafvision - Fotolia
GitHub : comment générer un jeton d’accès personnel
La filiale de Microsoft oblige désormais les développeurs à utiliser un système d’authentification fort avant de pouvoir effectuer des opérations Git dans le cloud. Voici comment générer et utiliser un jeton d’accès personnel pour commettre du code.
Le 13 août dernier, GitHub a annoncé la fin de l’authentification par mot de passe aux dépôts Git dans le cloud. Employer cette version de la plateforme réclame d’employer des tokens, des clés SSH, OAuth ou des tokens d’installation GitHub App suivant l’usage du développeur.
Générer un jeton d’accès personnel GitHub
Ainsi, il est impossible de pousser du code vers un dépôt Git hébergé par l’entreprise sans réévaluer la manière de se connecter. Par ailleurs, il est conseillé de signer les commits avec clés GPG stockées dans un espace sécurisé.
Qu’est-ce que cela change pour un développeur ? S’il tente de commettre du code sans un token d’accès personnel, il recevra le message d’erreur suivant :
Support for password authentication was removed on August 13, 2021.
Please use a personal access token instead.
GitHub entend ainsi sécuriser sa plateforme. Si un client de renom se fait pirater son mot de passe, l’entreprise craint d’être le seul à devoir payer les pots cassés. Les témoignages d’utilisateurs ayant fait les frais de telles attaques ne sont pas rares, même chez les fournisseurs tels Microsoft. En obligeant les organisations à réfléchir aux droits d’accès à un dépôt GitHub, aux types d’opérations réalisables par un rôle spécifique, et en éliminant la possibilité d’utiliser des mots de passe faibles, l’espoir est de rendre la plateforme Git hébergée sur le cloud plus sûre.
Heureusement, l’erreur « support for password authentication removed » de GitHub est facilement corrigible pour un développeur. Voici comment procéder.
Pour générer un jeton d’accès personnel dans GitHub et corriger l’erreur « Support for password authentication removed », suivez ces étapes :
- Connectez-vous à GitHub.
- Accédez aux paramètres de votre compte GitHub.
- Faites défiler vers le bas et cliquez sur « Developer settings » dans la liste des liens à gauche.
- Cliquez sur le lien Jetons d’accès personnels.
- Cliquez sur le bouton « Générer un nouveau jeton ».
- Ajoutez une « Note » pour décrire l’utilisation des jetons.
- Définissez une date d’expiration pour le jeton d’accès personnel GitHub.
- Sélectionnez la portée d’authentification appropriée.
- Cliquez sur le bouton « Générer un jeton ».
Copiez ensuite votre jeton d’accès personnel avant de quitter la page, car la valeur alphanumérique du jeton ne sera plus affichée.
La prochaine fois que vous vous connecterez au dépôt GitHub, fournissez le jeton d’accès personnel au lieu du mot de passe, et l’erreur décrite plus haut ne s’affichera plus.
À la chasse aux authentifiants mis en cache
Si vous avez toujours des difficultés à vous authentifier sur GitHub après avoir généré le jeton d’accès personnel, vérifiez que le mot de passe n’est pas mis en cache quelque part.
Si vous êtes sous Windows, vérifiez le Credentials Manager. Cette application stocke les noms d’utilisateur et les mots de passe utilisés sans le système d’exploitation. Si vous voyez un mot de passe GitHub entreposé dans le gestionnaire d’authentification de Windows, supprimez-le et essayez à nouveau de pousser vers GitHub. Un mot de passe vous sera demandé, et il vous suffira alors de fournir le jeton GitHub. Avec un SSO SAML, il faudra autoriser l’existence de ce token.
Il est encore possible de produire des jetons sans date d’expiration, mais leur durée de vie illimitée posera problème en cas de brèches. GitHub recommande vivement de protéger ces tokens comme des mots de passe ou des clés de chiffrement.
Ceux qui employaient déjà des clés SSH ne sont pas obligés de générer ces tokens, tout comme les entreprises ayant fait le choix de GitHub Enterprise Server. « Les jetons d’accès personnels ne peuvent être utilisés que pour les opérations Git HTTPS. Si votre dépôt recourt à une URL distante SSH, vous devrez passer de SSH à HTTPS », peut-on lire dans la documentation.
GitHub CLI n’est pas encore compatible avec cette fonction. Il faut passer par le navigateur.
Configurer l’authentification multifacteur
Par ailleurs, GitHub pousse ses utilisateurs à employer des systèmes d’authentification à double facteur afin de protéger leurs comptes. La société leur laisse le choix des armes : clés physiques, clés de sécurité virtuelles protégées par des enclaves supportant le protocole WebAuthn, applications prenant en charge le protocole TOTP (Time-Based One-Time Password) ou SMS.
L’éditeur recommande plus particulièrement l’usage d’applications TOPT comme 1Password, Authy, LastPass ou Microsoft Authenticator. Pour cela, il faut se connecter à son compte sur un ordinateur ou un mobile, se rendre dans les paramètres, sélectionner sécurité du compte, puis cliquer sur authentification deux facteurs dans l’onglet correspondant. La plateforme montrera un QR Code à scanner avec l’application mobile TOPT préalablement téléchargée. Après le scan, le code est directement affiché sur la page Web. Si la lecture du QR Code ne fonctionne pas, la page Web donne les chiffres à entrer manuellement dans l’application.
L’UI GitHub expose alors seize codes de restauration à précieusement conserver. Pour cela, il existe quatre méthodes : le stockage dans une enclave sécurisée d’un appareil, l’impression sur papier, la copie dans un gestionnaire de mots de passe et leur sauvegarde dans l’outil d’authentification de Facebook en dernier recours (si, si).
En cas de vol d’un ordinateur portable ou d’un smartphone, il sera plus aisé de récupérer l’accès à son compte en ayant ces fameuses clés de côté. Sinon, les démarches sont fastidieuses et longues, et souvent infructueuses. De plus, GitHub ne génère que seize clés de restauration.
Si l’usager choisit une vérification par SMS, la procédure demande d’entrer son numéro de téléphone en lieu et place du scan de QR Code. Les possesseurs de clés physiques devront d’abord suivre l’une des approches précédentes, puis insérer leur clé dans le port USB ou survoler la zone NFC avant d’enregistrer et synchroniser la clé avec leur compte GitHub.