Digamos que tengo el servidor A (un servidor web). Los usuarios inicialmente usan un proveedor externo como Google para autenticarse en ese servidor. Se crea una entrada en mi base de datos que indica que este usuario ha iniciado sesión antes y ha confirmado su cuenta. Ahora tienen acceso a recursos tales como un foro disponible desde el servidor web (por lo que esencialmente creamos una cuenta local para ellos).
Ahora, el usuario quiere autenticarse en el servidor B (un servidor de juegos). Se accede al servidor B a través de una aplicación de escritorio (cliente del juego) a través de TCP. Además, tenemos un servidor de puerta C que manejará las solicitudes iniciales de los clientes de escritorio antes de poder conectarse al servidor B.
La entrada creada para ese usuario anteriormente, se requiere para acceder al servidor B y / o C. Por lo tanto, la aplicación de escritorio debe abrir un navegador para autenticar a nuestro usuario en el servidor A.
¿Cuál es el flujo general requerido para implementar dicho sistema? Mi punto de confusión es que incluso si el servidor C sabe que el usuario está autenticado (al intercambiar tokens de acceso con el servidor A), ¿qué información pasamos al cliente de escritorio y al servidor B para que cuando el cliente se desconecte del servidor C, pueda estar seguro de que el servidor ¿B no rechazará su intento de conexión (asumiendo que la solicitud es legítima)?