2011-05-08 21 views
111

Sto tentando di implementare il flusso Resource Owner & Password Credentials dalle specifiche OAuth 2. Ho difficoltà a comprendere il valore token_type che viene restituito con una risposta valida. Nella spec tutti gli esempi mostrano "token_type":"example" ma dice che dovrebbe essereCosa sono i token bearer e token_type in OAuth 2?

token_type RICHIESTO. Il tipo di token rilasciato come descritto in Section 7.1. Il valore è case insensitive.

Qualcuno può spiegarmi questo per favore?

risposta

28

Chiunque può definire "token_type" come estensione OAuth 2.0, ma attualmente il tipo di token "portatore" è il più comune.

https://tools.ietf.org/html/rfc6750

Fondamentalmente questo è quello che Facebook sta usando. La loro implementazione è un po 'indietro rispetto alle ultime specifiche.

Se vuoi essere più sicuro di Facebook (o sicuro come OAuth 1.0 che ha "firma"), puoi usare il tipo di token "mac".

Tuttavia, sarà difficile, dato che le specifiche mac cambiano ancora rapidamente.

https://tools.ietf.org/html/draft-ietf-oauth-v2-http-mac-05

129

token_type è un parametro nel token di accesso generare chiamata al server di autorizzazione, che rappresenta in sostanza come un access_token verrà generato e presentato per le chiamate di accesso alle risorse. Fornisci token_type nella chiamata di generazione di token di accesso a un server di autorizzazione.

Se si dà Bearer (default sulla maggior parte implementazione), un access_token viene generato e inviato di nuovo voi. Il portatore può essere semplicemente inteso come "dare accesso al portatore di questo gettone". Un token valido e nessuna domanda posta. D'altra parte se si sceglie Mac e sign_type (default hmac-sha-1 sulla maggior parte implementazione), il token di accesso viene generato e tenuto segrete, Key Manager come attributo, e un segreto criptato viene inviato indietro come access_token

Sì, è possibile usa la tua implementazione di token_type, ma questo potrebbe non avere senso, dal momento che gli sviluppatori dovranno seguire il tuo processo piuttosto che implementazioni standard di OAuth.

+12

Trovo che "dare accesso al portatore di questo token" lo renda più facile da capire. È l'equivalente di emettere un assegno "dai soldi al portatore dell'assegno". – NVM

+0

@NVM Grazie per il suggerimento, ha sicuramente senso. Ho aggiornato lo stesso. –

2

Mozilla MDN Header Information

portatore Token
un token di sicurezza con la proprietà che una parte in possesso del token (un "portatore") può utilizzare il token in alcun modo che qualsiasi altra parte in possesso di esso può. L'uso di un token al portatore non richiede un portatore per dimostrare il possesso di materiale chiave crittografico (proof-of-possession).

Il token del token o del token di aggiornamento è creato per te dal server di autenticazione. Quando un utente autentica la propria applicazione (client), il server di autenticazione va quindi a generare un token bearer (token di aggiornamento) che è possibile utilizzare per ottenere un token di accesso.

Il token bearer è in genere una sorta di valore criptico creato dal server di autenticazione, non è casuale viene creato in base all'utente che fornisce l'accesso e il client alla propria applicazione per l'accesso.

Problemi correlati