Al momento disponiamo di un'app Web (.net MVC 5), l'accesso dell'utente che utilizza il nome utente e la password e quindi memorizziamo un valore crittografato in un cookie per autenticarlo in caso di richieste future.
Ora stiamo progettando un'API che verrà utilizzata principalmente dalla nostra app mobile (verrà creata una volta che l'API è pronta).
Ciò che io / noi stiamo cercando di capire è il modo migliore per proteggere le richieste fatte all'API. Il nostro piano attuale è di avere un semplice metodo API che accetta un nome utente e una password, che quindi convaliderà questi dettagli e in caso di successo restituirà un token che è univoco per quell'utente. Questo token verrà quindi utilizzato per ogni richiesta successiva di autenticazione.
Il problema qui è che se quel token viene rubato, qualcuno potrebbe impersonare quell'utente abbastanza facilmente. Quindi dovremmo inviare una specie di token secret che possiamo usare per firmare ogni richiesta (usando qualcosa come HMAC), quindi questo può essere controllato sul server prima di consentire alla richiesta di continuare?