Potresti considerare l'utilizzo di JWT (Token Web JSON) che sta diventando molto popolare. Essenzialmente, come funziona, il tuo utente accede al tuo sistema e la tua applicazione genera JWT e la invia con la risposta. JWT contiene campi standard come "oggetto", "pubblico" ecc. (Puoi anche definire attributi personalizzati), ha anche una data di scadenza ed è firmato crittograficamente. L'utente include la JWT con ogni richiesta nell'intestazione HTTP, direttamente nell'URL o nel cookie. Il tuo server convalida la firma e le analisi attribuite per stabilire i diritti di accesso.
I principali vantaggi sono che è sottoposto alla standardizzazione in IETF in questo momento ed è attualmente utilizzato da un numero considerevole di provider cloud per la protezione dell'accesso API. Un altro vantaggio è che se è necessario concedere l'accesso alla propria app a una terza parte, sarebbe facile da integrare in quanto esistono librerie che supportano JWT per quasi tutte le piattaforme, tra cui .Net (vedere il primo collegamento). O se decidi di esporre la tua API per i client mobili, funzionerà immediatamente. La tua applicazione può essere senza stato in questo modo (utile per il bilanciamento del carico), ma probabilmente dovrai utilizzare i cookie per l'accesso al browser web.