Sto scrivendo un servizio RESTful (Java EE, Jersey) e un'applicazione client che comunica con esso, e desidero assicurarlo e memorizzare qualsiasi nome utente & password dedicate nel mio database.
Non voglio che il client memorizzi localmente il nome utente e la password, non in alcuna forma come base-64 o altra codifica, preferisco avere qualcosa come il sistema di autorizzazione OAuth2, dove l'app client memorizza solo un aggiornamento & accedi ai token dopo che il proprietario della risorsa ha effettuato l'accesso, ma non è necessario fornire l'accesso ai servizi di terze parti.
La protezione del mio servizio utilizzando l'autenticazione di base significa che l'app client deve memorizzare la password e inviarla per ogni richiesta futura, quindi non è quello che mi serve.
Sono consapevole che OAuth è destinato a situazioni diverse, dove ci sono più di 2 parti coinvolte ( vedi altre domande ).
come menzionato qui link :
OAuth is the only realistic choice for a web application that itself uses another web application's API on behalf of the user. For instance, consider a web application that integrates with Twitter. (Perhaps it's a geolocation app like Foursquare that offers the ability to tweet where you are and what you're doing.)
Quindi qual è il metodo standard corretto per proteggere il mio servizio RESTful se non desidero reinventare la ruota e creare il mio metodo auth, e se "Basic" non è ciò di cui ho bisogno perché mi costringe a memorizzare il credenziali localmente sul client e OAuth è probabilmente un eccesso con la sua natura di accesso di terze parti.
P.S- Desidero offrire agli utenti un'opzione per accedere al mio servizio tramite Facebook o open-id, ma questa è un'altra storia che immagino.