Qual è il modo migliore per tracciare l'utente autenticato sul lato server? [chiuso]

1

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:

  1. Restituisce un guid e richiede quel guid su tutte le chiamate successive.
  2. 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

    
posta David Thielen 20.01.2015 - 21:47
fonte

1 risposta

0

In ASP.NET è possibile mantenere la sessione in un archivio dati anziché in memoria, ciò è utile per le distribuzioni bilanciate del carico. La sessione può essere tenuta in SQL e ho anche trovato un esempio di utilizzo di Redis per memorizzare in modo che il recupero sia più veloce.

Quindi nel tuo caso userei l'autenticazione ASP.NET e poi userei la sessione per mantenere la chiave primaria che hai menzionato per riconoscere l'utente.

    
risposta data 21.01.2015 - 10:57
fonte

Leggi altre domande sui tag