# GitHub Apps vs. OAuth Apps: Scegli la giusta connessione GitHub
Confronta GitHub Apps e OAuth Apps per l'integrazione con Logto. Scopri le principali differenze in termini di sicurezza, permessi, gestione dei token e scegli il metodo di autenticazione GitHub più adatto per la tua applicazione.
Quando integri l'autenticazione GitHub nella tua applicazione Logto, hai due opzioni: GitHub Apps e GitHub OAuth Apps. Pur offrendo entrambe la funzionalità "Accedi con GitHub", presentano esperienze fondamentalmente diverse per quanto riguarda sicurezza, gestione dei token e accesso alle API. Questa guida ti aiuterà a comprendere le differenze chiave e a scegliere l'approccio giusto per il tuo caso d'uso.
Background: Due strade per l'integrazione con GitHub
La documentazione attuale di Logto ti guida nella configurazione di una GitHub OAuth App per l'accesso social. Questa è l'opzione più semplice e diretta, ottima per le esigenze di autenticazione di base. Tuttavia, le GitHub Apps rappresentano l'approccio moderno e raccomandato dallo stesso GitHub, offrendo funzionalità di sicurezza avanzate e un controllo più granulare.
Pensa in questo modo: le OAuth Apps sono come dare a qualcuno una chiave maestra della tua casa—una volta autorizzato, ha accesso ampio. Le GitHub Apps, invece, sono come un sistema di serrature intelligenti con codici di accesso specifici per ogni stanza—gli utenti possono concedere permessi precisi solo per ciò di cui la tua app ha bisogno.
Differenze chiave in sintesi
Permessi: Ampi vs. granulare
- OAuth Apps utilizzano scope ampi—richiedere
repoconcede il pieno controllo sui repository. - GitHub Apps utilizzano permessi granulati—puoi richiedere solo "Issues: Lettura" senza toccare il codice. Gli utenti possono anche selezionare repository specifici durante l'installazione, invece di concedere accesso totale.
Sicurezza dei token: Permanenti vs. a scadenza
- OAuth Apps rilasciano token che non scadono mai (fino a revoca manuale), senza meccanismo di refresh.
- GitHub Apps utilizzano token a breve durata (scadenza di 1 ora) con supporto di refresh automatico—molto più sicuro per le applicazioni di lunga durata.
Identità: Utente vs. bot
- OAuth Apps agiscono sempre come l'utente che autorizza (ad esempio,
@octocat) e condividono il suo rate limit (5.000 richieste/ora). - GitHub Apps possono agire indipendentemente con la propria identità bot (per esempio,
@my-app[bot]) e godere di rate limit scalabile che cresce con l'utilizzo—ideale per automazione.
Controllo accessi: Tutto o niente vs. selettivo
- OAuth Apps richiedono un'autorizzazione unica per tutte le risorse accessibili.
- GitHub Apps permettono agli utenti di installare l'app, scegliere repository specifici e ricevere notifiche webhook sui cambi di permesso—fornendo maggiore trasparenza e controllo.
Persistenza: Dipendente dall'utente 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 l'organizzazione—garantendo un servizio ininterrotto per automazioni e integrazioni.
Quale scegliere?
Sia le GitHub Apps che le OAuth Apps funzionano perfettamente con il social connector di Logto. Il Secret Vault di Logto conserva in modo sicuro i token di entrambe le integrazioni, ma ciascuna offre un'esperienza differente:
Accesso social di base con OAuth Apps
Se ti serve solo autenticare utenti (Accedi con GitHub) e non chiamerai API GitHub in seguito, il percorso OAuth App è il più rapido:
- Configurazione semplice: gli utenti autorizzano la tua OAuth App e accedono tramite GitHub.
- I token sono di lunga durata (senza refresh): Logto può conservare l'access token nel Secret Vault, ma non c'è flusso di refresh — i token restano validi fino a revoca.
- Ideale quando ti serve solo l'identità utente (email, nome, avatar) e non esegui attività API automatizzate.
Perché scegliere questa opzione: è la più veloce da implementare per prototipi o app che necessitano solo del login e della sincronizzazione occasionale del profilo.
Integrazione avanzata con GitHub Apps
Scegli una GitHub App se la tua applicazione necessita di accesso continuo alle API GitHub, automazione in background o una maggiore sicurezza:
- Permessi granulati e selezione dei repository per installazione mantengono l'accesso minimo e verificabile.
- I token sono a breve durata (tipicamente 1 ora) e le GitHub App possono fornire refresh tokens; quando abilitato, Logto conserva sia l'access token che il refresh token nel Secret Vault e gestisce la rotazione cosicché il tuo backend continui a funzionare senza bisogno che l'utente effettui nuovamente il login.
- L'identità dell'app (bot) migliora l'attribuzione e i rate limit scalabili la rendono più affidabile per automazione intensa.
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 API continuo
- Strumenti che eseguono attività automatizzate in background
Configurazione di una GitHub App con Logto
La configurazione di una GitHub App segue uno schema simile a quello delle 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 "Impostazioni GitHub > Developer settings > GitHub Apps"
-
Clicca su "New GitHub App"
-
Configura:
- Nome GitHub App: Identificativo unico della tua app
- Homepage URL: Sito web della tua applicazione
- Callback URL: URI callback del connettore Logto (stesso delle OAuth App)
- Request user authorization (OAuth) during installation: Abilita questa opzione
- Webhook: Opzionale, in base alle tue necessità
- Permessi: Scegli permessi granulati (ad esempio, "Issues: Lettura")
- Permessi utente: Aggiungi permessi account se operi per conto degli utenti
-
Genera un client secret (come per le OAuth App)

Configurazione in Logto
La configurazione del connettore Logto è pressoché identica:
- Inserisci il Client ID della tua GitHub App
- Aggiungi il Client secret
- Abilita "Store tokens for persistent API access" se hai bisogno di chiamare API GitHub
- Differenza fondamentale - Scope:
- A differenza delle OAuth App (che richiedono di aggiungere scope nel campo scope di Logto), i permessi delle GitHub App si selezionano direttamente nelle impostazioni della tua GitHub App.
- Lascia semplicemente vuoto il campo scope in Logto
- Request refresh token (opzionale)
- Aggiungi
offline_accessal campo scope in Logto per abilitare i token di refresh - GitHub rilascia automaticamente un refresh token, e Logto gestisce la rotazione e conserva entrambi i token nel Secret Vault
- Nota: le OAuth App non supportano i token di refresh—i loro access token non scadono mai, quindi
offline_accessnon si applica. Questo è diverso usando le GitHub App per l'integrazione.
- Aggiungi

Conclusione
Le OAuth App restano una valida opzione per l'autenticazione di base, ma le GitHub Apps rappresentano il futuro delle integrazioni con GitHub. Offrono maggiore sicurezza grazie alla scadenza dei token, modelli di permessi più precisi e migliore controllo per gli utenti sull'accesso.
Per gli utenti Logto, entrambe le opzioni funzionano con il social connector. La scelta dipende dalle tue necessità specifiche:
- Inizia in modo semplice con le OAuth App se hai solo bisogno dell'autenticazione
- Passa alle GitHub App quando hai bisogno di accesso API, automazione o maggiore sicurezza
E ricorda—il Secret Vault di Logto e la gestione automatica del refresh dei token rendono la gestione dei token GitHub App semplice come per le OAuth App, senza compromessi sulla sicurezza. Che tu stia costruendo un assistente di coding AI, una piattaforma di project management o uno strumento per la produttività degli sviluppatori, ora hai le conoscenze per scegliere la migliore integrazione GitHub per la tua applicazione Logto.
Pronto per iniziare? Dai un'occhiata al connettore GitHub di Logto per integrare oggi stesso l'autenticazione GitHub.

