Quale meccanismo utilizzare per l'accesso all'API HTTP semplice e sicuro?

3

Attualmente sto lavorando a un servizio che offre un'API HTTP per i client mobili.

Voglio che i client si autenticano per poter accedere alla mia API. Il server stesso sta facendo l'autenticazione non ci saranno provider esterni. La connessione stessa è crittografata tramite SSL / TLS.

La mia domanda ora è quale meccanismo io uso dopo le credenziali dell'utente dove controllato. Per quanto ne so i più comuni sono:

  • Autenticazione di base HTTP
  • Autenticazione dell'accesso al digest HTTP
  • Autenticazione basata sulla sessione
  • OAuth
  • OAuth2

Personalmente tendo ad aderire all'autenticazione basata sulla sessione in quanto ampiamente supportata e facile da usare - inoltre mi sembra abbastanza sicura (okay c'è il dirottamento di sessione ma non devi inviare nuovamente le credenziali ogni volta)

Tuttavia sarebbe un miglioramento passare all'autenticazione dell'accesso al digest HTTP o anche a OAuth?

Best, Bodo

    
posta bodokaiser 24.08.2013 - 19:49
fonte

1 risposta

1

Per i client mobili, il potenziale problema con l'autenticazione basata sulla sessione è che probabilmente è necessario avere timeout di sessione molto lunghi, poiché in genere gli utenti non amano inserire le proprie credenziali ogni volta che usano un'applicazione.

A quel punto, se ciò è accettabile potrebbe dipendere dal modo in cui si limita l'uso dell'ID sessione. Se tutto ciò che può fare è prendere azioni relativamente non sensibili allora potrebbe essere una soluzione ragionevole (non proprio così diversa da un token di accesso OAuth), ma una preoccupazione potrebbe essere se un utente malintenzionato ottiene l'accesso a quel token che può intraprendere azioni sensibili alla sicurezza come cambiare le credenziali degli utenti.

A quel punto potresti voler considerare OAuth o qualcosa di simile per limitare le azioni che un token specifico memorizzato su un dispositivo mobile può prendere.

Un altro punto da menzionare su HTTP basic o digest è che usarli ti dà il mal di testa di memorizzare le credenziali degli utenti sul client.

    
risposta data 25.08.2013 - 09:22
fonte

Leggi altre domande sui tag