OAuth è una specifica per l'autorizzazione
OAuth 2.0 è una specifica per l'autorizzazione, ma NON per l'autenticazione. RFC 6749, 3.1. L'endpoint di autorizzazione dice esplicitamente quanto segue:
L'endpoint di autorizzazione viene utilizzato per interagire con il proprietario della risorsa e ottenere una concessione di autorizzazione. Il server delle autorizzazioni DEVE prima verificare l'identità del proprietario della risorsa. Il modo in cui il server di autorizzazione autentica il proprietario della risorsa (ad esempio, nome utente e password di accesso, cookie di sessione) esula dallo scopo di questa specifica .
Autenticazione OAuth?
L'autenticazione fornisce informazioni su "chi è". L'autorizzazione fornisce informazioni su "chi concede quali autorizzazioni a chi". Il flusso di autorizzazione contiene l'autenticazione come primo passaggio. È il motivo per cui le persone sono spesso confuse.
Esistono molte librerie e servizi che utilizzano OAuth 2.0 per l'autenticazione. Viene spesso chiamato "social login" e rende le persone più confuse. Se vedi "Autenticazione OAuth" (non "Autorizzazione OAuth"), si tratta di una soluzione che utilizza OAuth per l'autenticazione.
OpenID Connect
OpenID 1.0 e OpenID 2.0 sono vecchie specifiche per l'autenticazione. Coloro che hanno realizzato le specifiche si aspettavano che le persone utilizzassero OpenID per l'autenticazione. Tuttavia, alcune persone hanno iniziato a utilizzare OAuth 2.0 per l'autenticazione (non per l'autorizzazione) e l'autenticazione OAuth ha prevalso rapidamente.
Dal punto di vista dei ragazzi di OpenID, l'autenticazione basata su OAuth non era abbastanza sicura, ma dovevano ammettere che le persone preferivano l'autenticazione OAuth. Di conseguenza, i ragazzi di OpenID hanno deciso di definire una nuova specifica, OpenID Connect , oltre a OAuth 2.0.
Sì, questo ha reso le persone molto più confuse.
Definizioni di una frase di OAuth 2.0 e OpenID Connect
OAuth 2.0 è un framework in cui un utente di un servizio può consentire a un'applicazione di terze parti di accedere ai propri dati ospitati nel servizio senza rivelare le proprie credenziali (ID e password) all'applicazione.
OpenID Connect è un framework in cima a OAuth 2.0 in cui un'applicazione di terze parti può ottenere informazioni sull'identità di un utente gestite da un servizio.
(Spiacenti, queste definizioni sono estratti dalla pagina della panoramica della mia azienda)
Definizioni dal punto di vista degli implementatori
L'autenticazione è un processo per determinare l'oggetto (= identificatore univoco) di un utente finale. Esistono molti modi per determinare l'argomento. ID e password, impronte digitali, riconoscimento dell'iride, ecc.
L'autorizzazione è un processo per associare il soggetto alle autorizzazioni richieste e all'applicazione client che ha richiesto le autorizzazioni. Un token di accesso rappresenta l'associazione.
Guarda anche
- Implementatore completo di OAuth e OpenID Connect Talks About Findings
- Diagrammi e filmati di tutti i flussi OAuth 2.0
- Diagrammi di tutti i flussi di OpenID Connect
- La guida più semplice a OAuth 2.0