Sto sviluppando un'API Web che supporterà diverse applicazioni: un sito Web, una o più applicazioni mobili complementari e possibilmente diverse applicazioni di terze parti. Ci si aspetta che ogni applicazione ottenga un token di accesso dal server di autenticazione e quindi lo alimenta all'API, l'utente inserirà le proprie credenziali sull'interfaccia web del server di autenticazione (per applicazioni di terzi) o direttamente nel sito Web o nell'app (per "trusted" applicazioni). Non ci si aspetta che le app client richiedano l'identità dell'utente.
Ho iniziato a implementarlo tramite OAuth 2 e corrisponde esattamente ai miei casi d'uso. Ma più tardi ho trovato diverse discussioni nella rete che mi ha fatto pensare se il mio scenario richiedesse davvero OpenID Connect, e ora, dopo alcune migliaia di parole leggere, non riesco ancora a grok quale è meglio per il mio caso .
(Ad esempio, GitHub, che corrisponde approssimativamente ai miei casi d'uso, utilizza OAuth 2)
Mi piacerebbe sentire alcune linee guida su come scegliere se la propria API richiede OAuth 2 o OpenID Connect.
Aggiorna
Ciò che mi confonde è il seguente: c'è un punto valido nel non usare OAuth per l'autenticazione . Ma considera questo caso (supponi che ci sia una regola aziendale semplice: ogni utente può vedere solo i propri documenti):
- l'app passa al server di autenticazione token
- l'utente autorizza l'app, quindi il token è concesso
- l'app passa a api con il token per i dati
- api restituisce documenti per l'utente che ha autorizzato il token (quindi in qualche modo il token può essere ricondotto all'utente)
Si tratta di uno scenario di autenticazione o di uno scenario di autorizzazione?
PS. Sono a conoscenza di questa domanda , ma il migliore rispondi là non affronta i miei dubbi.