Sto lavorando su un'applicazione web ASP.NET MVC, che recupera i dati da un'API sul retro. L'autenticazione viene attualmente eseguita tramite autenticazione moduli ASP.NET, il che significa che il client invia e-mail e password al sito Web, il sito Web trasferisce tali dati all'API che restituisce un token di autenticazione, che viene archiviato all'interno di una sessione ASP.NET. Dopodiché il cookie auth è impostato sul client.
Va bene e sicuro (dalle mie attuali conoscenze), nessuna credenziale o il token è memorizzato sul lato client.
Come svantaggio, ogni richiesta AJAX deve essere instradata attraverso il sito web. Di conseguenza, ho un numero elevato di azioni ASP.NET MVC, che non eseguono nulla se non inoltrano la richiesta all'API e restituiscono il risultato di ritorno da lì.
Potrebbe trattarsi di un collo di bottiglia in futuro, perché l'infrastruttura del sito web deve essere ridimensionata nello stesso modo in cui deve essere l'infrastruttura api. Ora sto cercando una soluzione per rimuovere queste chiamate ridondanti tramite il sito web e andare direttamente all'API dal client (tramite AJAX).
Richiede l'autenticazione API dal client. Questo non sarebbe un problema, tecnicamente, se immagazzino il token di autenticazione in LocalStorage (i vecchi browser non sono supportati).
Ma quanto è sicuro questo approccio? Quali opzioni esistono per rubare il token, accanto a JSONP (che può essere impedito non includendo gli script esterni, giusto?)?