Autentificación de clientes de servidor a servidor basada en token

0

Como todos saben, SE ha tenido esta función en la que uno inicia sesión desde una red, él / ella inicia sesión globalmente en todas las redes SE. Esto se hace, por supuesto, utilizando el almacenamiento local.

Sin embargo, quiero iniciar sesión utilizando el token de servidor a servidor. Esto se debe a que los hosts de los que mis clientes necesitarían sesiones son CDN privados que deben iniciar sesión automáticamente.

Propongo el siguiente esquema y pregunto lo siguiente:

  1. ¿Cuáles son las fallas obvias en el esquema, si las hay, o suenan?

  2. ¿Sobre qué deben ser cautelosos tanto desde el punto de vista teórico como práctico?

El esquema

Se almacena junto con la información del usuario una clave s del lado del servidor simétrica utilizada para firmar tokens de autenticación (MAC). Cada vez que el cliente solicita una página con medios desde el host de la aplicación, el servidor crea una página con las URL de medios que apuntan al servidor CDN, e incluye algunas líneas de JavaScript que realizan una solicitud de autenticación al servidor CDN utilizando un token creado por aplicación de host.

El token es una cadena creada por la codificación JSON de una tupla de datos de expiración de información de usuario codificada en JSON firmada por MAC. La clave MAC es la clave s por usuario del lado del servidor.

El servidor CDN crea una sesión para las solicitudes que realiza el cliente. El controlador de medios espera hasta que el controlador de autenticación envía el token al host de la aplicación y recibe una respuesta positiva antes de devolver los archivos de medios al cliente en respuesta.

El host de la aplicación, al recibir el token, lo deserializa, verifica el tiempo de caducidad, carga la clave s del usuario especificado en el token, verifica el MAC, verifica algunas otras cosas opcionalmente (permiso del usuario, por ejemplo), luego devuelve un predicado que indica si la autenticación es exitosa o no.

    
pregunta DannyNiu 27.10.2018 - 16:08
fuente

0 respuestas

Lea otras preguntas en las etiquetas