OAuth è adatto per questo scenario?

1

Ho bisogno di creare una semplice applicazione web per le spese di tracciamento, con alcune azioni di base (l'utente deve essere in grado di creare un account e accedere, elencare le spese, modificarle, ecc.) con un'API REST per ciascuna e il trucco è che devo essere in grado di passare credenziali sia alla pagina web che all'API.

Quindi, dopo alcune ricerche ho trovato alcuni esempi usando l'autenticazione del digest e l'autenticazione HMAC, ma molti post hanno anche menzionato OAuth come un approccio alternativo, quindi la mia domanda è, dato questo scenario, sarebbe corretto usare OAuth? Voglio dire, per quanto ne so OAuth è adatto quando vuoi condividere risorse con altre applicazioni, cosa che non sto facendo per questo progetto; oltre a ciò, quando provi ad accedere alla risorsa condivisa, appare una pagina che richiede l'autorizzazione per l'applicazione estranea, quella pagina apparirà ad un certo punto nella mia applicazione? (forse dopo il login?)

Nel caso in cui OAuth non fosse adatto, c'è qualche altra opzione oltre all'autenticazione del digest e all'autenticazione HMAC?

    
posta user3610187 26.06.2014 - 00:40
fonte

1 risposta

0

OAuth 2 è uno schema di passaggio di token. Esistono diversi modi per ottenere un server OAuth che ti conceda un token. Una volta ottenuto il token, lo si passa al servizio (su SSL, per proteggerlo) e, se il token è buono e non è scaduto, è possibile ottenere la pagina o le informazioni desiderate.

Lo schema di passaggio dei token è molto facile da usare. È molto simile a un "ID di sessione" che invii al servizio, tranne che viene fornito come intestazione di autorizzazione invece di un cookie o parametro di query.

La parte che potrebbe rendere OAuth più difficile per te è impostare l'autorizzazione sul lato server; ci sono diverse implementazioni lato server di OAuth, ma configurarle per quali risorse sono protette e ciò che non lo è è un po 'più complicato di una semplice lista di nomi utente e amp; Le password. Esiste anche un "ambito" che consente un client, quali tipi di sovvenzioni sono disponibili per un client e quali risorse possono accedere al client. Potrebbe richiedere una curva di apprendimento leggermente superiore a qualcosa di semplice come Digest o HMAC.

Inoltre, mentre ho protetto molti servizi REST con OAuth, non ho mai protetto le pagine web. Quindi non sono sicuro di come farlo. Con un framework basato su template come Spring MVC, la loro soluzione OAuth si adatterebbe molto bene. Tuttavia, a parte questo, non sono sicuro di come procedere (ottenendo che il browser colleghi l'intestazione di autorizzazione corretta per estrarre una pagina).

OAuth è più versatile rispetto agli altri schemi, quindi, se stai mettendo insieme un sito aziendale (al contrario del tuo progetto) la curva di apprendimento extra e il tempo di configurazione potrebbero valerne la pena.

    
risposta data 26.06.2014 - 01:54
fonte

Leggi altre domande sui tag