Per un'app Web, il lato client è javascript nel browser. Il lato server è ASP.NET con un'API REST. Attualmente esiste un singolo server, ma abbiamo in programma di scalare con un server ciascuno negli Stati Uniti, Regno Unito e AUS (su Azure). Avremo redis (ma questo non si sincronizza istantaneamente). Utilizzeranno (quasi) sempre SSL.
Quando un utente effettua l'accesso, li autenticiamo. È facile ritrasferire la chiave primaria di quel record utente nel DB e nelle chiamate successive, passare quel PK per identificare l'utente. È anche banalmente facile impersonare qualsiasi utente.
Qual è il modo migliore per implementarlo? Le due cose che ho pensato sono:
- Restituisce un guid e richiede quel guid su tutte le chiamate successive.
- Archivia il PK nei dati di sessione sul lato server e utilizzalo per identificare l'utente in tutte le chiamate successive.
Entrambi i precedenti funzionano se una sessione esistente continua ad andare nello stesso server (cosa che credo che faccia) per ogni richiesta successiva.
Quindi, qual è il modo migliore per farlo? Uno dei due precedenti? O c'è un altro approccio che è meglio?
grazie - dave