Qualsiasi scenario per l'utilizzo di entrambi, OpenID Connect e OAuth 2.0?

6

Dato che OpenID Connect si basa su OAuth 2.0, suppongo che tutto ciò che è possibile con OAuth 2.0 sia possibile anche con OpenID Connect.

In particolare, dì che il mio sito web memorizza alcune informazioni che appartengono all'utente e implementa OpenID Connect per autenticare gli utenti. Quando l'utente esegue l'autenticazione tramite un altro sito Web, tale sito Web può utilizzare lo stesso flusso OpenID Connect per ottenere l'autorizzazione dell'utente a concedere l'accesso alle informazioni dell'utente sul mio sito Web.

Questa affermazione è corretta? Potrebbe esserci qualche scenario in cui avrei bisogno di implementare OAuth 2.0 indipendentemente da OpenID Connect?

    
posta Amiramix 03.06.2016 - 02:59
fonte

1 risposta

4

Risposta breve è che non è definito. Se vuoi una libreria che supporti entrambi, assicurati che supporti esplicitamente sia OAuth 2 che OIDC.

Se si dovesse disegnare un diagramma di Venn, OAuth 2 e OIDC si intersecano tra loro ma OAuth 2 definisce anche alcuni flussi che OIDC non estende, e OIDC aggiunge un flusso che non si trova in OAuth 2.

Flussi OAuth 2 :

  • Sovvenzione del codice di autorizzazione
  • Concessione implicita
  • Credenziali password proprietario risorse Concedere
  • Concessione di credenziali client

flussi OIDC :

  • Sovvenzione del codice di autorizzazione
  • Concessione implicita
  • ibrida

La specifica OIDC estende esplicitamente il codice di autorizzazione di OAuth 2 e i flussi impliciti, ma non dice nulla sugli altri. Pertanto, una determinata implementazione OIDC può supportare completamente o parzialmente i restanti flussi OAuth 2. In sostanza intendo, restituisce il token di accesso solo come OAuth 2, ma non come token ID.

Quindi perché OIDC non copre esplicitamente tutti i flussi di OAuth 2? Ecco cosa penso:

  • Concessione di credenziali password proprietario risorse. Questo flusso vanifica le funzionalità di sicurezza introdotte dalla concessione del codice di autorizzazione di OAuth 2. Dal punto di vista della sicurezza, stai lontano da questo flusso.
  • Concessione di credenziali client. Un esempio di questo scenario è il servizio per la comunicazione di servizio, che potrebbe essere risolto con PKI - non ha bisogno di token ID introdotto da OIDC.
risposta data 21.06.2016 - 04:08
fonte