Chiarificazione della sicurezza REST dei servizi Web

1

Sono un principiante della programmazione di servizi Web e ho qualche problema a capire come utilizzare l'autenticazione / sicurezza per il pattern REST WS.

Avevo letto su OAuth ma non ho capito come funziona nei dettagli, tuttavia penso di non averne bisogno perché solo la mia app utilizza l'API.

Ho bisogno di autenticare gli utenti che hanno bisogno di utilizzare le API "private", puoi spiegarmi il modo corretto per implementare un'autenticazione REST WS o darmi una buona guida o diagramma di flusso?

    
posta Andrea Catania 21.07.2014 - 16:23
fonte

1 risposta

1

In base al vincolo stateless di REST, non è possibile mantenere sessioni sul lato server. Devi invece autenticare ogni richiesta.

Ci sono 2 tipi di client:

  • client fidati sviluppati da te (lo sviluppatore del servizio web)
  • Client di terze parti sviluppati da chiunque altro

Da un client fidato la soluzione più semplice per inviare nome utente e password ad ogni singola richiesta. Ad esempio, l'autenticazione HTTP di base in un'intestazione HTTP. (Ofc con connessione crittografata.)

Dato che il tuo utente non può fidarsi dei client di terze parti con la sua password, devi scoprire qualcos'altro da lì. Una soluzione tipica (ad esempio Facebook) per aggiungere una chiave API univoca a ciascuno dei client di terze parti. Dopodiché, quando l'utente vuole usarne uno, riceve una richiesta. Utilizzando tale richiesta, può concedere l'accesso al client di terze parti per utilizzare parte del suo account. Durante questo processo, accessToken, userId, apiKey, permissions viene salvata sul server e il client di terze parti ottiene un token di accesso per l'utente. Successivamente, il client di terze parti può utilizzare il token di accesso (insieme alla chiave API e all'ID utente) per utilizzare il servizio Web che utilizza l'account dell'utente.

    
risposta data 18.09.2014 - 14:43
fonte

Leggi altre domande sui tag