10

Quale di base auth, digest auth e Oauth dovrei usare per la mia applicazione web per consentire agli utenti di accedere alle risorse tramite chiamate API restful.Autenticazione di base HTTP, auth digest e Oauth?

Oauth non è la soluzione migliore che sostituisce l'autenticazione di base e digest?

+0

Cool site cercando di fare luce: http://oauthbible.com/ – SudoPlz

risposta

2

Sto cercando di risolvere anche la risposta a questo. Direi che dipende da quale sia l'ambito della tua app prevista. oAUTH limita l'accesso agli sviluppatori che dovrebbero costruire un client per eseguire l'handshaking.

Basic può funzionare con molti client browser di dati come Sesame e funziona anche con Excel 2010, così come con qualsiasi browser precedente. l'unico problema sono le password che viaggiano in chiaro, che possono essere mitigate ospitando la tua app su https.

Non so molto di digest, purtroppo.

Sto provando personalmente a verificare un'implementazione di ciascuno: http basic e oauth.

18

passando sopra a molti dettagli qui, ma:

http base: inviare nome utente & password in chiaro nell'intestazione Autorizza

http digerire: inviare nome utente & la password, dove la password è stata hash da un server fornito nonce

Entrambe le versioni di OAuth originariamente progettati per concedere ai partiti 3rd accesso a risorse che non sono di proprietà (ad es. Acconsento mobile photo app per pubblicare i tuoi amici a mio nome), senza dover rinunciare alla 3a parte le mie credenziali. Entrambi questi protocolli di lavoro essenzialmente come segue:

  • Dall'applicazione foto cellulare, l'utente viene indirizzato alla pagina di facebook
  • Una volta che sono loggato, vengono reindirizzati clic sulla foto per app mobile con un codice.
  • L'app per foto mobile riscatta questo codice per un token di accesso
  • L'app per foto su cellulare può quindi inviare richieste a Facebook per pubblicare le mie foto sul mio muro.

oauth1.0a: più sicuro di oath2, ma più difficile da implementare richiede anche che tutte le richieste siano firmate.

oauth2: si basa su ssl per sicurezza e non richiede la firma della richiesta. Mentre è l'autore principale ha abbandonato il progetto perché ritiene che non soddisfi nessuno dei suoi obiettivi di progettazione originali (sicurezza, interoperabilità) è ampiamente utilizzato da Facebook e Google.

Qui ci sono alcuni articoli che ho trovato utile qui:

Non ancora abbastanza mojo per il collegamento alla RFC, ma queste sono le fonti definitive, se leggermente indigesto

+3

Questa dovrebbe essere la risposta accettata. –

+0

FYI, Oauth2.0 utilizza l'autenticazione di base HTTP in alcune parti del suo flusso. – garbagecollector

+0

Hmm .. Non vedo una vera differenza tra l'autenticazione HTTP Digest con qop = auth-int ([rfc2617, giugno 1999] (http://tools.ietf.org/html/rfc2617) e l'autorizzazione OAuth 1 schema (2010) ... non sono sicuro di quale sia il problema di OAuth :-) – Kenney

4

Phil Sturgeon ha un eBook decente (Build APIs You Won't Hate) con un intero capitolo dedicato all'autenticazione. Esso copre:

  • base
  • Digest
  • OAuth 1.0a
  • OAuth 2

Mi raccomando la lettura se si stanno prendendo in considerazione l'implementazione di tali meccanismi all'interno del vostro API RESTful.

Aggiornamento Perché il downvote?

Problemi correlati