Usando oAuth come complemento di un sistema di autenticazione esistente?

1

Spero che questo sia lo scambio di stack corretto per chiedere questo, ecco qui.

Sto costruendo un nuovo sito web in cui implementa il proprio sistema di login personalizzato. È sufficiente registrare il nome utente, la password e-mail ecc. Quindi è possibile accedere con l'opzione di fare clic su "ricordami" per salvare la seccatura di accesso ogni volta. Per semplicità, chiamiamolo Sistema di accesso personalizzato e un account Account personalizzato .

Tuttavia, sono molto interessato all'integrazione di alcuni sistemi di login di terze parti tramite oAuth offerti da Facebook, Google e Twitter.

La mia domanda è, è possibile avere un meccanismo per cui:

  • accedi tramite Google, ad esempio
  • il mio script conferma i token e tutta quella roba buona per assicurarti di aver autorizzato l'accesso
  • Chiedo quindi di collegare il tuo account Google a:
    • un account personalizzato esistente
    • esistente
    • un nuovo account personalizzato chiedendo di registrarne uno dopo aver effettuato l'accesso con Google
  • dopo aver effettuato l'accesso al tuo account personalizzato , ti considero come qualsiasi altro utente tranne che presumo che l'opzione "ricordami" sia stata spuntata e imposti un cookie che ti consente di accedere da qui in poi come se si stesse utilizzando un normale account personalizzato per tutto il tempo.

Questo potrebbe significare essenzialmente che non ho bisogno di interrogare costantemente i server di Google, solo durante il login. Poi da lì in poi, finché avranno un cookie valido, rimarranno loggati.

È possibile? Ci sono evidenti difetti che mi mancano?

    
posta xLite 13.04.2013 - 08:48
fonte

1 risposta

2

Non sembra sbagliato al livello che stai descrivendo; ci sono certamente siti che offrono entrambi i tipi di accesso (ad es. SourceForge ). Quando hai a che fare con questo genere di cose, hai assolutamente ragione di memorizzare le informazioni nella sessione; ri-interrogare il provider oAuth su ogni operazione farebbe schifo in termini di prestazioni, e sarebbe anche complicato da fare dato che questi avanzati schemi di autenticazione basati sul web sono in realtà basati su un po 'di elaborazione dei moduli.

Tuttavia, probabilmente dovrai fare attenzione a non aprire i tuoi clienti agli attacchi del nefasto. In particolare, poiché il cookie di sessione è ora un vero token di sicurezza (dopo auth) è necessario assicurarsi che sia solo HTTPS e che venga sempre inviato da un indirizzo (a meno che il client non dica esplicitamente "so che il mio indirizzo IP è responsabile cambiare ", alcune persone sono bloccate con proxy poxy come quello). Probabilmente è anche necessario che l'autenticazione scada dopo un po ', almeno per operazioni più sensibili. Probabilmente c'è ancora più di cui devi pensare, ma non conosco lo stato dell'arte dettagliato in quest'area.

Ottenere tutto questo è un po 'complicato in quanto ci sono così tanti trucchi, quindi dovrebbe cercare una libreria che gestisca i dettagli di basso livello per te. Non conosco affatto il mondo delle librerie per PHP, quindi non posso menzionare nulla di specifico. (Se stavi usando Java potrei aiutare di più ...)

    
risposta data 13.04.2013 - 10:28
fonte

Leggi altre domande sui tag