Comprendo che OAuth non è un protocollo di autenticazione, ma un'autorizzazione (anche se il primo paragrafo su La pagina di Google OAuth 2.0 non è d'accordo ), così come:
[...] authorization can be abused into some pseudo-authentication, on the basis that if entity A obtains from B an access key through OAuth, and shows it to server S, then server S may infer that B authenticated A before granting the access key.
e che dovrei usare OpenID quando devo autenticare un utente.
Tuttavia, ciò significa che se utilizzo effettivamente OAuth (non OpenID Connect , ma OAuth 2.0) con Google, significa che la mia applicazione web non è sicura? Può essere compromesso ottenere l'accesso a un account o fare qualcosa di sbagliato? Un utente può creare qualcosa da passare per un altro utente?
Per rendere la domanda un po 'meno astratta, supponiamo che assuma :
-
Le librerie che uso, come
Flask-OAuth
per Python e librerie simili per altre lingue, sono sicure. -
Mi fido di Google,
-
L'account Google di un utente non è compromesso (se l'account Google dell'utente viene compromesso, è previsto che un utente malintenzionato abbia accesso all'account dell'utente sulla mia applicazione web),
-
Il FAI / servizio di hosting / altro uomo nel mezzo non dovrebbe essere considerato affidabile,
-
Chiunque abbia un account Google può accedere / registrarsi / qualsiasi cosa,
-
Non ho bisogno che l'indirizzo e-mail dell'utente, il nome / il cognome o altre informazioni personali siano vere; tutto ciò di cui ho bisogno è di mantenere i dati di un utente protetto da altri utenti.