GitHub Apps vs. OAuth Apps: Scegli la connessione GitHub giusta
Confronta GitHub Apps e OAuth Apps per l'integrazione con Logto. Scopri le principali differenze in sicurezza, permessi, gestione dei token e scegli il giusto metodo di autenticazione GitHub per la tua applicazione.
Quando integri l'autenticazione GitHub nella tua applicazione Logto, hai due opzioni: GitHub Apps e GitHub OAuth Apps. Sebbene entrambe abilitino la funzionalità "Accedi con GitHub", offrono esperienze fondamentalmente diverse in termini di sicurezza, gestione dei token e accesso alle API. Questa guida ti aiuterà a comprendere le principali differenze e a scegliere l'approccio giusto per il tuo caso d'uso.
Contesto: Due percorsi per l'integrazione con GitHub
La documentazione attuale di Logto ti guida nella configurazione di una GitHub OAuth App per l'accesso sociale. Questa è l'opzione più semplice e diretta, ideale per esigenze di autenticazione di base. Tuttavia, le GitHub Apps rappresentano l'approccio moderno e consigliato dalla stessa GitHub, offrendo caratteristiche di sicurezza avanzate e un controllo più granulare.
Pensala così: le OAuth Apps sono come dare a qualcuno una chiave maestra della tua casa: ottengono un accesso ampio una volta autorizzati. Le GitHub Apps, invece, sono come un sistema di serrature intelligenti, con codici di accesso specifici per stanze diverse: gli utenti possono concedere permessi precisi in base a ciò di cui la tua app ha bisogno.
Principali differenze a colpo d'occhio
Permessi: Ampi vs. granulari
- OAuth Apps usano scope ampi: richiedere
repoconcede il controllo completo sul repository. - GitHub Apps usano permessi granulati: puoi richiedere solo "Issues: Lettura" senza toccare il codice. Gli utenti possono anche selezionare repository specifici durante l'installazione, senza concedere accesso globale.
Sicurezza dei token: Permanenti vs. a scadenza
- OAuth Apps emettono token che non scadono mai (fino a revoca manuale), senza alcun meccanismo di refresh.
- GitHub Apps utilizzano token a breve durata (scadono dopo 1 ora) con supporto per il refresh automatico — molto più sicuri per applicazioni che funzionano a lungo termine.
Identità: Utente vs. bot
- OAuth Apps agiscono sempre come l'utente che autorizza (es.
@octocat) e condividono il suo limite di richieste (5.000 richieste/ora). - GitHub Apps possono agire indipendentemente con una propria identità bot (es.
@my-app[bot]) e godere di limiti di richieste scalabili che crescono con l'uso: perfetto per l'automazione.
Controllo accessi: Tutto o niente vs. selettivo
- OAuth Apps richiedono una sola autorizzazione per tutte le risorse accessibili.
- GitHub Apps permettono agli utenti di installare l'app, scegliere repository specifici e ricevere notifiche webhook sui cambiamenti di permessi — offrendo maggiore trasparenza e controllo.
Persistenza: Dipendente dagli utenti vs. indipendente
- OAuth Apps sono legate all'utente che autorizza — se quello sviluppatore perde l'accesso o lascia un'organizzazione, l'app smette di funzionare.
- GitHub Apps continuano a funzionare anche se lo sviluppatore che ha installato l'app lascia la tua organizzazione — garantendo servizio ininterrotto per automazione e integrazioni.
Quale scegliere?
Sia le GitHub Apps che le OAuth Apps funzionano perfettamente con il connettore sociale di Logto. Il Secret Vault di Logto archivia in modo sicuro i token di entrambe le integrazioni, ma ognuna offre un'esperienza distinta:
Accesso sociale di base con OAuth Apps
Se hai solo bisogno di autenticare utenti (Accedi con GitHub) e non vuoi chiamare in seguito le API di GitHub, la scelta più rapida è la OAuth App:
- Configurazione semplice: gli utenti autorizzano la tua OAuth App e accedono tramite GitHub.
- I token sono a lunga durata (nessun refresh): Logto può archiviare il token di accesso in Secret Vault, ma non esiste un flusso di refresh — i token rimangono validi fino a revoca.
- Ideale quando ti serve solo l'identità dell'utente (email, nome, avatar) e non svolgi lavoro automatico con le API.
Perché scegliere questo: è il modo più veloce da implementare per prototipi o app che richiedono solo il login e sincronizzazione salturaria del profilo.
Integrazione avanzata con GitHub Apps
Scegli una GitHub App quando la tua applicazione ha bisogno di accesso continuo alle API di GitHub, automazione in background o sicurezza più rigorosa:
- I permessi granulari e la scelta dei repository per installazione mantengono l'accesso minimo e controllabile.
- I token sono a breve durata (tipicamente 1 ora) e le GitHub Apps possono fornire token di refresh; quando abilitato, Logto archivia sia il token di accesso che il refresh token in Secret Vault e gestisce la rotazione affinché il tuo backend continui a funzionare senza bisogno che gli utenti rifacciano il login.
- L'identità dell'app (bot) migliora l'attribuzione e i limiti di richieste scalabili la rendono più affidabile per l'automazione massiva.
Ideale per:
- Piattaforme SaaS che gestiscono repository GitHub per conto degli utenti
- Agenti AI che interagiscono con codice, issue o pull request
- Applicazioni che richiedono accesso continuo alle API
- Strumenti che svolgono attività automatizzate in background
Configurare una GitHub App con Logto
Configurare una GitHub App segue un modello simile alle OAuth App, con alcune differenze chiave. La migrazione da OAuth App a GitHub App richiede uno sforzo minimo.
Creazione di una GitHub App
-
Vai su "GitHub Settings > Developer settings > GitHub Apps"
-
Clicca su "New GitHub App"
-
Configura:
- Nome della GitHub App: Identificativo unico della tua app
- Homepage URL: Il sito web della tua applicazione
- Callback URL: L'URI di callback del tuo connettore Logto (come per la OAuth App)
- Richiedi autorizzazione utente (OAuth) durante l'installazione: Abilita questa opzione
- Webhook: Opzionale, a seconda delle necessità
- Permessi: Seleziona permessi granulari (es. "Issues: Lettura")
- Permessi utente: Aggiungi permessi account se agisci per conto degli utenti
-
Genera un client secret (come per la OAuth App)

Configurazione in Logto
La configurazione del connettore Logto è quasi identica:
- Inserisci il Client ID della tua GitHub App
- Aggiungi il Client secret
- Abilita "Salva i token per accesso API persistente" se devi chiamare le API GitHub
- Differenza fondamentale - Scope:
- A differenza delle OAuth Apps (che richiedono di aggiungere scope nel campo scope di Logto), i permessi delle GitHub App si selezionano nelle impostazioni della GitHub App.
- Basta lasciare il campo scope vuoto in Logto
- Richiedi refresh token (opzionale)
- Aggiungi
offline_accessal campo scope in Logto per abilitare i token di refresh - GitHub emette automaticamente un token di refresh e Logto gestisce la rotazione e archivia entrambi i token in Secret Vault
- Nota: le OAuth Apps non supportano i refresh token — i loro access token non scadono mai, quindi
offline_accessnon si applica. Questo è diverso rispetto all'uso delle GitHub Apps per l'integrazione.
- Aggiungi

Conclusione
Sebbene le OAuth Apps restino una valida opzione per l'autenticazione di base, le GitHub Apps rappresentano il futuro delle integrazioni con GitHub. Offrono una sicurezza superiore grazie alla scadenza dei token, modelli di permessi più precisi e un maggiore controllo agli utenti sull'accesso.
Per gli utenti Logto, entrambe le opzioni funzionano con il connettore sociale. La scelta dipende dalle tue esigenze specifiche:
- Inizia in modo semplice con le OAuth Apps se ti serve solo l'autenticazione
- Passa alle GitHub Apps quando hai bisogno di accesso API, automazione o sicurezza avanzata
E ricorda: Secret Vault di Logto e la gestione automatica dei refresh dei token rendono la gestione dei token delle GitHub Apps semplice quanto quella delle OAuth Apps, senza sacrificare la sicurezza. Che tu stia costruendo un assistente di coding AI, una piattaforma di project management o uno strumento di produttività per sviluppatori, ora hai le conoscenze per scegliere l'integrazione GitHub giusta per la tua applicazione Logto.
Pronto per iniziare? Dai un'occhiata al connettore GitHub di Logto per iniziare a integrare l'autenticazione GitHub oggi stesso.

