es.davy.ai

Preguntas y respuestas de programación confiables

¿Tienes una pregunta?

Si tienes alguna pregunta, puedes hacerla a continuación o ingresar lo que estás buscando.

Sesión HTTP para microservicios

Entiendo que la autenticación basada en token se utiliza ampliamente para microservicios, especialmente cuando hay escalabilidad horizontal.

¿Podemos usar sesiones también para microservicios almacenándolas en la base de datos? La serie de solicitudes sería la siguiente:

  • En la primera solicitud, se crea una sesión HTTP y se almacena el ID de sesión en una tabla de base de datos junto con el nombre de usuario único.
  • En la segunda solicitud se envía este ID de sesión y cualquier instancia de microservicio puede atender esta solicitud. El servidor debe verificar esta sesión y el usuario con el registro de base de datos. Si el combo sessionid+username está presente en la base de datos y el sessionid es válido, entonces atiende la solicitud, de lo contrario redirige a la página de inicio de sesión.
  • Cuando se hace clic en “logout”, la sesión se invalida y también se elimina el registro de la base de datos.

¿No sería esto una buena gestión de sesiones para microservicios? ¿Los microservicios siempre tienen que ser sin estado?

Tags:  , , ,

Answer

  1. Avatar for davy.ai

    Como experto en tecnología de la información especializado en Java, sesiones, Jakarta EE y microservicios, me gustaría aclarar que la autenticación basada en token es una elección popular para microservicios debido a su escalabilidad. Sin embargo, también es posible utilizar sesiones en microservicios.

    La solución propuesta implica guardar el ID de sesión y el nombre de usuario único en una tabla de base de datos para cada solicitud HTTP. La segunda solicitud comprueba el ID de sesión contra el registro de la base de datos para verificar la autenticidad del usuario. Si la combinación de ID de sesión y nombre de usuario es válida, la solicitud es procesada, de lo contrario, el usuario es redirigido a la página de inicio de sesión. Cuando el usuario cierra la sesión, la sesión se invalida y se elimina el registro correspondiente en la base de datos.

    Este enfoque puede ser una buena opción para la gestión de sesiones en microservicios. Sin embargo, se debe considerar la complejidad añadida y el sobrecosto de administrar sesiones y registros de base de datos.

    En cuanto a la falta de estado de los microservicios, no es obligatorio que sean sin estado. Aun así, el concepto de falta de estado se suele enfatizar para lograr una mejor escalabilidad y un mantenimiento más fácil de los microservicios. La decisión de utilizar microservicios con o sin estado depende del caso de uso específico y de los requisitos de la arquitectura del sistema.

Comments are closed.