GitHub Personal Access Token (PAT) â authentification sĂ©curisĂ©e pour GitHub
Introduction
Le GitHub Personal Access Token (PAT), ou token dâaccĂšs personnel, est une mĂ©thode moderne pour sâauthentifier en toute sĂ©curitĂ© sur la plateforme GitHub.
Depuis aoĂ»t 2021, GitHub ne prend plus en charge lâutilisation des mots de passe pour les opĂ©rations Git via HTTPS. Cela signifie que pour toute action nĂ©cessitant auparavant un mot de passe, un token est maintenant requis. Le PAT permet de :
- accéder en toute sécurité aux dépÎts ;
- travailler avec lâAPI GitHub ;
- automatiser des processus dans des scripts, CI/CD et autres outils sans risquer de compromettre le compte.
En rĂ©sumĂ© : le PAT est une « clĂ© » qui offre un accĂšs limitĂ©, peut ĂȘtre rĂ©voquĂ©e facilement et peut avoir une date dâexpiration.
Pourquoi utiliser un PAT
Lâobjectif principal dâun PAT est de sĂ©curiser le travail sur GitHub tout en conservant la commoditĂ©.
Fonctions clés :
- Sécurité
Un mot de passe donne un accĂšs complet au compte. Sâil est compromis, tout est en danger. Un token peut ĂȘtre limitĂ© par permissions et durĂ©e. - Automatisation
Les scripts, CI/CD, bots et autres outils peuvent utiliser un PAT au lieu de saisir manuellement un nom dâutilisateur et un mot de passe. - ContrĂŽle dâaccĂšs
Il est possible de crĂ©er plusieurs tokens avec des permissions diffĂ©rentes pour diffĂ©rentes tĂąches. Si un token fuit, il peut ĂȘtre rĂ©voquĂ© sans affecter les autres.
Types de tokens
GitHub propose deux types de tokens :
- Classic (classique)
- LâaccĂšs est dĂ©fini via des scopes (par exemple,
repo,workflow). - Donne des droits sur tous les dĂ©pĂŽts de lâutilisateur.
- Simple Ă utiliser mais moins flexible.
- LâaccĂšs est dĂ©fini via des scopes (par exemple,
- Fine-grained (détaillé)
- Permet de limiter lâaccĂšs Ă des dĂ©pĂŽts spĂ©cifiques.
- On peut attribuer des permissions précises, par exemple « lecture seule des issues ».
- Les organisations peuvent exiger lâapprobation de ces tokens.
đĄ Conseil : utilisez des tokens fine-grained lĂ oĂč la sĂ©curitĂ© et la limitation de lâaccĂšs sont importantes ; les tokens classic pour la compatibilitĂ© avec les outils anciens.
Comment créer un PAT
Ătape 1. Aller dans les paramĂštres
- Ouvrez GitHub â Settings â Developer settings â Personal access tokens â Tokens (classic).
Ătape 2. GĂ©nĂ©rer un nouveau token
- Cliquez sur Generate new token (classic).
- Donnez un nom (Note), par exemple
CI-tokenouGit-PC. - DĂ©finissez la date dâexpiration â 90 jours ou 1 an est recommandĂ©.
- SĂ©lectionnez les permissions nĂ©cessaires (Scopes) â minimum pour Git :
repo, pour Actions :workflow. - GĂ©nĂ©rez le token et enregistrez-le immĂ©diatement â il ne sera affichĂ© quâune seule fois.
Utilisation du PAT
1. Git via HTTPS
git clone https://github.com/username/repo.git
# Nom dâutilisateur : votre login GitHub
# Mot de passe : token généré
Pour ne pas entrer le token Ă chaque fois, il peut ĂȘtre mis en cache :
git config --global credential.helper manager # Windows/Mac
git config --global credential.helper 'cache --timeout=3600' # Linux
2. Travailler avec lâAPI GitHub
$token = Get-Secret -Name GitHubToken # récupération sécurisée du token
$headers = @{ Authorization = "token $token" }
$repos = Invoke-RestMethod -Uri "https://api.github.com/user/repos" -Headers $headers
$repos | ForEach-Object { $_.name }
Créer un issue :
$body = @{
title = "Nouvelle tĂąche de test"
body = "Description de la tĂąche"
} | ConvertTo-Json
Invoke-RestMethod -Uri "https://api.github.com/repos/username/repo/issues" `
-Method Post `
-Headers $headers `
-Body $body
3. CI/CD et scripts
$token = Get-Secret -Name GitHubToken
git config --global user.name "CI Bot"
git config --global user.email "ci@example.com"
git add .
git commit -m "Mise Ă jour automatique"
git push "https://$token@github.com/username/repo.git" main
đĄ Conseil : utilisez un token sĂ©parĂ© avec les permissions minimales pour CI/CD.
4. IDE et développement local
- Dans Visual Studio Code et dâautres IDE, vous pouvez utiliser le PAT Ă la place du mot de passe pour travailler avec des dĂ©pĂŽts privĂ©s et des pull requests.
- Pour diffĂ©rentes machines ou IDE, crĂ©ez des tokens sĂ©parĂ©s afin de limiter lâimpact dâune Ă©ventuelle fuite.
5. Gestion et sécurité
- Stockez les tokens dans des gestionnaires de mots de passe ou SecretStore.
- Créez des tokens séparés pour différentes tùches.
- Vérifiez et révoquez réguliÚrement les tokens inutilisés.
- Toujours dĂ©finir une date dâexpiration (ne pas utiliser « No expiration »).
- Planifiez la rotation des tokens pour CI/CD et scripts automatisés.
6. Alternative : GitHub CLI
gh auth login
Le CLI ouvrira le navigateur, effectuera lâauthentification, crĂ©era et sauvegardera le token localement. Cela Ă©vite la gĂ©nĂ©ration manuelle du PAT et simplifie la gestion des clĂ©s.