OAuth è appropriato per l'utilizzo di un'API privata da parte dei clienti registrati?

2

Sto sviluppando un'API privata che verrà utilizzata dai clienti pre-registrati per accedere alle informazioni sul nostro sito web. Memorizzeremo le credenziali di accesso sul nostro server. Quando ho esaminato come garantire la sicurezza di questa API, ho notato che OAuth sembra essere raccomandato in modo schiacciante per l'autenticazione degli utenti. Sto cercando di capire se OAuth è appropriato per un caso come il mio, o se OAuth è più adatto per le API pubbliche. Comprendo l'utilità di OAuth se desideri che i tuoi utenti accedano al tuo sito tramite una terza parte come Facebook o Google e se desideri che la tua API sia aperta al pubblico senza richiedere la registrazione. Tuttavia, la stragrande quantità di informazioni su OAuth è correlata a questi usi. Se desidero che una semplice API privata sia aperta solo ai client preregistrati, quali sarebbero i vantaggi dell'utilizzo di OAuth anziché di una più tradizionale autenticazione delle chiavi API? Vale la complessità extra se non è necessaria la funzionalità di accesso extra che fornisce? Grazie mille.

    
posta Christian 15.10.2018 - 21:54
fonte

1 risposta

2

Supponendo che i client API debbano accedere alle informazioni su il loro proprio nome, piuttosto che su un utente di terze parti, allora dovrebbe corrispondere al flusso di autenticazione "Credenziali client" in OAuth 2.

Consultando le specifiche , questa è effettivamente una richiesta che ammonta a "ecco un ID e un pre segreto condiviso "e una risposta con" ecco un token che ti consente di accedere alle risorse "- estremamente simile all'autenticazione tradizionale con nome utente e password.

Se si guarda in questo modo, è possibile utilizzare un sottoinsieme limitato di OAuth 2 per garantire l'API a prova di futuro nel caso in cui abbia bisogno di una qualsiasi delle altre funzionalità OAuth. Oppure, se hai già un livello di autenticazione basato su username + password, potresti potenzialmente riutilizzare parte di quella logica per questo. Nel caso delle credenziali del cliente, i due approcci appaiono essenzialmente uguali dal punto di vista della sicurezza.

Ora, un vantaggio di usabilità dell'utilizzo delle credenziali del client OAuth 2 è che gli sviluppatori client possono utilizzare le librerie già disponibili, se lo preferiscono, anziché essere costretti a creare un livello di autenticazione personalizzato nella loro app client. Pertanto, per questo motivo, la creazione di un flusso di lavoro di credenziali client OAuth 2 semplice sembra un buon approccio.

    
risposta data 16.10.2018 - 09:25
fonte

Leggi altre domande sui tag