GitHub Apps vs. OAuth Apps : Choisissez la bonne connexion GitHub
Comparez les GitHub Apps et les OAuth Apps pour l'intégration Logto. Découvrez les principales différences en matière de sécurité, de permissions, de gestion des jetons, et choisissez la meilleure méthode d'authentification GitHub pour votre application.
Lorsque tu intègres l'authentification GitHub dans ton application Logto, tu as deux options : GitHub Apps et GitHub OAuth Apps. Bien que les deux permettent la fonctionnalité « Se connecter avec GitHub », elles offrent des expériences fondamentalement différentes en termes de sécurité, de gestion des jetons et d'accès à l'API. Ce guide t'aidera à comprendre les principales différences et à choisir la meilleure approche pour ton cas d'utilisation.
Contexte : Deux chemins pour l'intégration GitHub
La documentation actuelle de Logto t'explique comment configurer une GitHub OAuth App pour l'identification sociale. C'est l'option la plus simple et directe, idéale pour des besoins d'authentification basiques. Cependant, les GitHub Apps représentent l'approche moderne et recommandée par GitHub lui-même, offrant des fonctionnalités de sécurité renforcées et un contrôle plus granulaire.
Imagine-le ainsi : les OAuth Apps sont comme donner à quelqu'un une clé maîtresse de ta maison — il obtient un large accès une fois autorisé. Les GitHub Apps, en revanche, ressemblent à un système de verrouillage intelligent avec des codes d'accès spécifiques pour différentes pièces — les utilisateurs peuvent accorder des permissions précises pour ce dont ton application a exactement besoin.
Différences clés en un clin d'œil
Permissions : Étendues vs. granulaires
- OAuth Apps utilisent des scopes larges — demander
repoaccorde le contrôle total du dépôt. - GitHub Apps utilisent des autorisations fines — tu peux demander juste « Issues : lecture » sans toucher au code. Les utilisateurs peuvent également sélectionner des dépôts spécifiques lors de l'installation, sans accorder un accès global.
Sécurité des jetons : Permanent vs. éphémère
- OAuth Apps émettent des jetons qui n'expirent jamais (jusqu'à révocation manuelle), sans mécanisme de rafraîchissement.
- GitHub Apps utilisent des jetons à courte durée de vie (expiration en une heure) avec prise en charge du rafraîchissement automatique — bien plus sécurisé pour les applications de longue durée.
Identité : Utilisateur vs. bot
- OAuth Apps agissent toujours en tant qu'utilisateur autorisé (par ex.
@octocat) et partagent leur limite de taux (5 000 requêtes/heure). - GitHub Apps peuvent agir de façon indépendante avec leur propre identité de bot (par ex.
@my-app[bot]) et bénéficient de limites de taux qui évoluent avec l'usage — parfait pour l'automatisation.
Contrôle d'accès : Tout ou rien vs. sélectif
- OAuth Apps nécessitent une autorisation unique pour toutes les ressources accessibles.
- GitHub Apps permettent aux utilisateurs d'installer l'app, de choisir des dépôts spécifiques et de recevoir des notifications webhook sur les changements de permissions — offrant ainsi plus de transparence et de contrôle.
Persistance : Dépendante de l'utilisateur vs. indépendante
- OAuth Apps sont liées à l'utilisateur autorisé — si ce développeur perd l'accès ou quitte une organisation, l'application cesse de fonctionner.
- GitHub Apps continuent de fonctionner même si le développeur qui l'a installée quitte ton organisation — garantissant un service ininterrompu pour l'automatisation et les intégrations.
Laquelle choisir ?
Les deux, GitHub Apps et OAuth Apps, fonctionnent parfaitement avec le connecteur social de Logto. Le Secret Vault de Logto stocke en toute sécurité les jetons issus de l'une ou l'autre intégration, mais chacune offre une expérience distincte :
Connexion sociale basique avec OAuth Apps
Si tu veux seulement authentifier les utilisateurs (Se connecter avec GitHub) et que tu n'appelles pas les APIs GitHub par la suite, l'option OAuth App est la plus rapide :
- Configuration simple : les utilisateurs autorisent ton OAuth App et se connectent via GitHub.
- Les jetons sont de longue durée (sans rafraîchissement) : Logto peut stocker le jeton d'accès dans Secret Vault, mais il n'y a pas de processus de rafraîchissement — les jetons restent valides jusqu'à révocation.
- Idéal lorsque tu souhaites simplement l'identité utilisateur (email, nom, avatar) sans automatisation d'API.
Pourquoi choisir cela : implémentation la plus rapide pour les prototypes ou les apps qui nécessitent seulement une connexion et une synchronisation occasionnelle du profil.
Intégration avancée avec GitHub Apps
Choisis une GitHub App si ton application a besoin d'un accès continu aux APIs de GitHub, d'automatisation en arrière-plan ou de sécurité accrue :
- Permissions fines et sélection des dépôts à l'installation pour un accès minimal et audit rapide.
- Les jetons sont de courte durée (généralement 1 heure) et les GitHub Apps peuvent fournir des jetons de rafraîchissement ; une fois activés, Logto stocke à la fois les jetons d'accès et de rafraîchissement dans Secret Vault et gère leur rotation pour que ton backend continue sans reconnexion utilisateur.
- Identité de l'app (bot) pour une meilleure attribution et des limites de taux extensibles, rendant l'automatisation plus fiable.
Idéal pour :
- Les plateformes SaaS qui gèrent les dépôts GitHub pour le compte des utilisateurs
- Les agents IA qui interagissent avec le code, les issues ou les pull requests
- Les applications nécessitant un accès API soutenu
- Les outils réalisant des tâches automatisées en arrière-plan
Configurer une GitHub App avec Logto
Créer une GitHub App suit un schéma similaire à celui des OAuth Apps, avec quelques différences clés. La migration d'une OAuth App à une GitHub App demande peu d'efforts.
Créer une GitHub App
-
Va dans « GitHub Settings > Developer settings > GitHub Apps »
-
Clique sur « New GitHub App »
-
Configure :
- Nom de l’app GitHub : Identifiant unique de ton app
- URL de la page d’accueil : Site web de ton application
- URL de redirection : URI de callback du connecteur Logto (identique à l’OAuth App)
- Demander l’autorisation utilisateur (OAuth) lors de l’installation : Active cette option
- Webhook : Optionnel, selon tes besoins
- Permissions : Sélectionne des droits fins (par ex. « Issues : lecture »)
- Permissions utilisateur : Ajoute les permissions de compte si tu agis au nom d’utilisateurs
-
Génère un secret client (identique à l’OAuth App)
Configuration dans Logto
La configuration du connecteur dans Logto est presque identique :
- Saisis l’ID client de ta GitHub App
- Ajoute le secret client
- Active « Stocker les jetons pour un accès API persistant » si tu veux appeler les APIs GitHub
- Différence clé — Scopes :
- Contrairement aux OAuth Apps (qui requièrent des scopes à définir dans Logto), les permissions des GitHub Apps se définissent dans les paramètres GitHub.
- Laisse simplement le champ des scopes vide dans Logto
- Demander un jeton de rafraîchissement (optionnel)
- Ajoute
offline_accessdans le champ scopes de Logto pour activer les jetons de rafraîchissement - GitHub émettra automatiquement un jeton de rafraîchissement, et Logto gère la rotation et stocke les deux jetons dans Secret Vault
- Remarque : les OAuth Apps ne supportent pas les jetons de rafraîchissement — leurs jetons d’accès n’expirent jamais, donc
offline_accessn’est pas applicable. Cela diffère lors de l’utilisation des GitHub Apps pour l’intégration.
- Ajoute
Conclusion
Bien que les OAuth Apps restent une option valable pour l’authentification de base, les GitHub Apps représentent l’avenir des intégrations GitHub. Elles offrent une sécurité supérieure via l’expiration des jetons, un modèle d’autorisations plus précis, et un meilleur contrôle utilisateur sur l’accès.
Pour les utilisateurs Logto, les deux options fonctionnent avec le connecteur social. Le choix dépend de tes besoins spécifiques :
- Commence simplement avec les OAuth Apps si tu as juste besoin d’authentification
- Passe aux GitHub Apps si tu veux de l’accès API, de l’automatisation ou une sécurité renforcée
Et rappelle-toi — le Secret Vault de Logto et la gestion automatique du renouvellement des jetons rendent la gestion des jetons GitHub App aussi simple qu’avec les OAuth Apps, sans sacrifier la sécurité. Que tu construises un assistant IA de code, une plateforme de gestion de projets ou un outil de productivité pour développeurs, tu as désormais les connaissances pour choisir la meilleure intégration GitHub pour ton application Logto.
Prêt à commencer ? Consulte le connecteur GitHub de Logto pour intégrer l’authentification GitHub dès maintenant.