Voglio concedere l'accesso a un client desktop a un server di gioco tramite un id di sessione use-once. Ecco la procedura:
Innanzitutto l'utente deve registrarsi sul server web (MVC) tramite il proprio browser. Una volta registrato e loggato (autenticato), l'utente avvierà una richiesta al server Web indicando che desidera l'accesso al server di gioco.
Il server web inoltra questa richiesta a un gateserver (Web API) che genera un cookie contenente un ID di sessione use-once. L'id della sessione viene inoltrato al server dei giochi e al server web.
Il server web invierà l'id di sessione al client desktop (durante l'inizializzazione dell'app). Il client desktop utilizzerà quell'ID di sessione per richiedere l'accesso al server di giochi.
Il server dei giochi e il server gateway scarteranno l'id della sessione una volta che il client si connetterà.
Questo uso degli ID di sessione è sicuro? Tutti i trasferimenti dell'id saranno effettuati su https.
MODIFICA: il server Web conserva già una sessione lato server per ciascun utente. Quando il webserver riceve la risposta dal server di login, aggiungerà quell'ID di sessione di gioco alla sessione web dell'utente. Anche quando dico di dire
send the session id to the desktop client
Voglio dire, l'ID della sessione è incluso in un percorso del file (come parametro) e javascript è usato per avviare l'app da una vista.
Inoltre, sto utilizzando OAuth per registrare gli utenti tramite provider esterni come Google. Sto cercando di evitare che gli utenti debbano inserire le loro credenziali anche nel mio client desktop.