2016-06-27 48 views
10

Ho trovato molti articoli e molti suggeriscono di utilizzare OAuth su API Key. Dalla mia comprensione, in OAuth, otteniamo finalmente un token di accesso ed è valido per molti giorni. Un esempio è che il token OAuth online QuickBooks è valido per 6 mesi.OAuth (Access Token) Vs API Key

Quindi, il token di accesso è equivalente alla chiave API. Chiunque lo ottenga, dovrebbe farlo in modo simile come API Keys. E le chiamate OAuth dovrebbero essere effettuate tramite HTTPS in modo simile alle chiamate basate su chiavi API.

Un altro vantaggio su OAuth è l'autorizzazione. Ma possiamo fare lo stesso con il modello Key API. Ad esempio, possiamo definire regole nel nostro database come queste chiavi API possono accedere a queste API .

Ora, qual è il vero vantaggio di OAuth? Se implementiamo OAuth, dobbiamo chiedere a tutti i nostri clienti di installare le librerie di supporto OAuth nel loro server. Ed è un compito complesso per loro e anche per noi. Mentre nel modello API Key è una semplice chiamata Web senza altre librerie e complessità aggiuntive.

La mia intenzione è solo di capire meglio OAuth e non confrontare & discutere con il modello chiave API.

Nota:
Non sto parlando di Google & LinkedIn sorta di modello in cui gli utenti devono vedere e dare i permessi. Sto solo parlando di API che forniamo ai nostri clienti.

Grazie per il vostro aiuto in anticipo.

+1

Penso che qualcuno abbia già posto questa domanda http://stackoverflow.com/questions/6767813/api-keys-vs-http-authentication-vs-oauth-in-a-restful-api –

+0

Sì. Tutta la descrizione di quella risposta è nella mia domanda. Allora perché ancora OAuth? Questo è davvero utile solo a quel tipo di approccio di Google - LinkedIn? E non ha alcun vantaggio reale nella piccola base di clienti? – user10

risposta

12

È necessario OAuth solo quando si desidera abilitare un utente del servizio per consentire a un'applicazione client di terzi di accedere ai propri dati ospitati nel servizio senza rivelare le proprie credenziali (ID & password) all'applicazione .

Ciò che una coppia di chiavi API & può fare è solo l'autenticazione di un'applicazione client. Se è possibile consentire a un'applicazione client autenticata di accedere ai dati di un utente senza il consenso esplicito dell'utente, non è necessario utilizzare OAuth.

+0

Ok. Perfezionare. Grazie. – user10

+0

Che dire dell'utilizzo di OAuth senza chiave API e segreto? Le credenziali OAuth non sarebbero in qualche modo correlate all'ID client (chiave API)? – mko