Choisir une méthode d’authentification appropriée
Vous devez choisir une méthode d’authentification appropriée pour la tâche que vous souhaitez accomplir.
- Pour utiliser l’API à des fins personnelles, vous pouvez créer un personal access token.
- Pour utiliser l’API au nom d’une organisation ou d’un autre utilisateur, vous devez créer une GitHub App.
- Pour utiliser l’API dans un workflow GitHub Actions, vous devez vous authentifier avec le
GITHUB_TOKEN
intégré.
Pour plus d’informations, consultez « À propos de l’authentification auprès de GitHub ».
Limiter les autorisations de vos informations d’identification
Lors de la création d’un personal access token, sélectionnez uniquement les autorisations ou étendues minimales nécessaires, puis définissez une date d’expiration pour la durée minimale nécessaire à l’utilisation du jeton. GitHub vous recommande d’utiliser des fine-grained personal access token à la place de personal access tokens (classic). Pour plus d’informations, consultez « Gestion de vos jetons d'accès personnels ».
Un jeton possède les mêmes capacités d’accès aux ressources et d’exécution d’actions sur ces ressources que le propriétaire du jeton, et est en outre limité par toute portée ou autorisation accordée au jeton. Un jeton ne peut pas accorder des fonctionnalités d’accès supplémentaires à un utilisateur.
Lors de la création d’une GitHub App, sélectionnez les autorisations minimales dont votre GitHub App aura besoin. Pour plus d’informations, consultez « Meilleures pratiques pour la création d’une application GitHub ».
Lors de l’authentification avec GITHUB_TOKEN
dans un workflow GitHub Actions, donnez uniquement le nombre minimal d’autorisations nécessaires. Pour plus d’informations, consultez « Authentification par jeton automatique ».
Stocker vos informations d’identification d’authentification de manière sécurisée
Traitez les informations d’identification d’authentification de la même façon que vous traitez vos mots de passe ou d’autres informations d’identification sensibles.
- Ne partagez pas d’informations d’identification d’authentification en utilisant un système de messagerie ou d’e-mail non chiffré.
- Ne passez pas votre personal access token en texte brut dans la ligne de commande. Pour plus d’informations, consultez « Gestion de vos jetons d'accès personnels ».
- Ne poussez pas d’informations d’identification d’authentification non chiffrées, comme des jetons ou des clés, vers un dépôt, même si celui-ci est privé. Envisagez plutôt d’utiliser un secret GitHub Actions ou un secret Codespaces. Pour plus d’informations, consultez « Utilisation de secrets dans GitHub Actions » et « Gestion des secrets spécifiques à votre compte pour GitHub Codespaces ».
- Vous pouvez utiliser l’analyse des secrets pour découvrir des jetons, des clés privées et d’autres secrets qui ont été poussés vers un dépôt, ou pour bloquer les poussées (push) ultérieures qui contiennent des secrets. Pour plus d’informations, consultez « À propos de l’analyse des secrets ».
Limiter les personnes autorisées à accéder à vos informations d’identification d’authentification
Ne partagez pas votre personal access token avec d’autres personnes. Au lieu de partager un personal access token, envisagez de créer une GitHub App. Pour plus d’informations, consultez « À propos de la création d’applications GitHub ».
Si vous devez partager des informations d’identification avec une équipe, stockez les informations d’identification dans un système partagé sécurisé. Par exemple, vous pouvez stocker et partager des mots de passe de manière sécurisée en utilisant 1Password, ou stocker des clés dans Azure KeyVault et gérer l’accès avec votre système IAM (gestion des identités et des accès).
Si vous créez un workflow GitHub Actions qui doit accéder à l’API, vous pouvez stocker vos informations d’identification dans un secret chiffré et accéder à celui-ci à partir du workflow. Pour plus d’informations, consultez « Utilisation de secrets dans GitHub Actions » et « Effectuer des requêtes d’API authentifiées avec une application GitHub dans un workflow GitHub Actions ».
Utiliser les informations d’identification d’authentification de manière sécurisée dans votre code
Ne codez jamais en dur les informations d’identification d’authentification telles que les jetons, les clés ou les secrets liés à l’application dans votre code. Au lieu de cela, envisagez d’utiliser un gestionnaire de secrets comme Azure Key Vault ou HashiCorp Vault. Pour plus d’informations sur la sécurisation des informations d’identification d’GitHub App, consultez « Meilleures pratiques pour la création d’une application GitHub ».
Quand vous utilisez un personal access token dans un script, envisagez de stocker votre jeton en tant que secret GitHub Actions et d’exécuter votre script via GitHub Actions. Vous pouvez également stocker votre jeton en tant que secret Codespaces et exécuter votre script dans Codespaces. Pour plus d’informations, consultez « Utilisation de secrets dans GitHub Actions » et « Gestion des secrets spécifiques à votre compte pour GitHub Codespaces ».
Si aucune de ces options n’est possible, vous pouvez stocker les informations d’identification d’authentification dans un fichier .env
. Veillez à chiffrer votre fichier .env
et à ne jamais le pousser vers un dépôt.
Préparer un plan de correction
Vous devez créer un plan pour gérer les violations de sécurité en temps opportun. En cas de fuite de votre jeton ou d’autres informations d’authentification, vous devez :
- Générer de nouvelles informations d’identification.
- Remplacer les anciennes informations d’identification par les nouvelles partout où vous stockez les informations d’identification ou y accédez.
- Supprimer les anciennes informations d’identification compromises.
Pour plus d’informations sur la rotation des informations d’identification compromises pour une GitHub App, consultez « Meilleures pratiques pour la création d’une application GitHub ».
Pour plus d’informations sur la création et la suppression de personal access token, consultez « Gestion de vos jetons d'accès personnels ».