Quiero que los clientes de varias aplicaciones web relacionadas mantengan su propio estado de autenticación. Esto mejora la escalabilidad, ya que no se necesita replicación de sesión entre los nodos del clúster. Y facilita la integración de diferentes tecnologías de servidor como Java Servlets y PHP.Sesiones del lado del cliente
Mi plan es el siguiente:
- establecer una cookie firmado y cifrado con el nombre de usuario y una sesión de tiempo de caducidad después de la autenticación del cliente.
- Cuando el cliente envía una solicitud, el servidor descifra y valida la cookie y otorga o deniega el acceso según los valores de la cookie.
- La caducidad de la sesión se actualizará restableciendo la cookie.
Todos los servidores que desean utilizar la sesión solo tienen que conocer el mecanismo de la cookie y la clave de descifrado. Ver también: Session state in the client tier
¿Este enfoque está bien? ¿Sería posible integrarlo en un servlet container/servidor de aplicaciones para que sea transparente para las aplicaciones? Un servlet debería ser capaz de usar HttpServletRequest # getRemoteUser() por ejemplo. es posible? ¿O necesitaría algo más que el nivel de contenedor como Spring Security? ¿Hay alguna biblioteca existente para la administración de la sesión del lado del cliente?
Esto es lo que no quiere hacer porque quiere que la solución sea escalable. Creo que esta es la única manera de ir, sin embargo. –
Quiero tener una tienda para el estado de autenticación. Y no quiero almacenar este estado en el servidor. Tengo algo en mente como la autenticación básica http, pero quiero ser más flexible (para admitir OpenID, por ejemplo). – deamon