2013-10-10 6 views
13

Sebbene abbia già lavorato con OAuth 2, sono un principiante di Open ID Connect.OAuth 2 access_token vs OpenId Connect id_token

Leggendo i tutorial e documentazioni che ho incontrato sia access_token e id_token dove access_token è la stringa unica casuale generato in base alle OAuth 2 e id_token è JSON Web Token che contiene informazioni come l'id l'utente, l'algoritmo, l'emittente e varie altre informazioni che possono essere utilizzate per convalidarlo. Ho anche visto provider API che forniscono sia access_token che id_token e per quanto ne so è per compatibilità con le versioni precedenti.

La mia domanda è che è possibile utilizzare sia access_token che id_token per accedere alle risorse protette? O è id_token solo per scopi di verifica e access_token viene utilizzato per ottenere l'accesso alle risorse protette?

risposta

24

Originariamente, OAuth e OpenId sono progettati per scopi diversi: OpenId per l'autenticazione e OAuth per l'autorizzazione. OpenId Connect è una unificazione di entrambi e serve per entrambi, ma non modifica le funzionalità originali. Tenendolo presente, dovresti essere in grado di scoprirlo da solo. ;-)

id_token viene utilizzato per identificare l'utente autenticato, ad es. per SSO. Access_token deve essere utilizzato per dimostrare i diritti di accesso alle risorse protette, ad es. per l'endpoint userinfo in OpenId Connect.

+0

Sono un po 'confuso con questo open id connect e implementazione oauth2. Sto avendo un front-end (html, angularjs) e back-end webservice. Ora voglio implementare il meccanismo basato su token durante l'accesso in modo tale che l'utente di login invierà clientid , emailid, password e nel backend convaliderò le credenziali di id del client dopo di che emetterò un token all'utente e con l'aiuto di quell'utente del token manterrà quella sessione utente. Quindi dove arriva la connessione openid e come sarà utile per me. Per favore forniscimi un po 'di intuizione perché sono davvero confuso qui per favore –

+0

Per quanto ho capito, non hai bisogno di autorizzazione, solo di autenticazione. Se è così allora dovresti semplicemente usare OpenId o una soluzione SSO, ma non hai bisogno di OAuth o OpenId Connect. –

1

access_token è utile chiamare determinate API in Auth0 (ad es./Userinfo) o un'API definita in Auth0.

id_token è un JWT e rappresenta l'utente connesso. Viene spesso utilizzato dalla tua app.

è possibile utilizzare sia il token di accesso che il token di identificazione per l'accesso alle risorse protette?

No completamente, in primo luogo, è necessario utilizzare id_token effettuare il login,
secondo, si otterrà un access token,
scorso, utilizzare access token per accedere ai dati.