Tenemos una aplicación Drupal que usa sso para iniciar sesión en los usuarios.
Estamos usando balanceadores de carga clásicos (ELB) de AWS, AWS nos dice que no hay persistencia de sesión en el ELB.
Lo que intento descubrir es cómo funcionan las cookies sin persistencia en los equilibradores de carga clásicos.
example.com DNS apunta al ELB. Hay 2 servidores en el grupo Servidor1 y Servidor2
Lo que queremos que suceda es que si un usuario llega a su página de inicio al http://example.com/user/12345/
decir en el servidor 1, si aún no ha iniciado sesión, se lo redirige a la página sso http://example.com/user/login/sso
, inicia sesión automáticamente y recibe una cookie SESS<hexnumber>
y luego se lo redirige ahttp://example.com/user/12345/
No podemos agregar ningún servidor de sesiones (redis), lo que garantiza que permanecerán en el servidor 1 para ambos redireccionamientos.
Que yo sepa con cada visita a 'example.com', el usuario podría terminar en el servidor 1 o en el servidor 2.
Mi pregunta:
Si obtienen la cookie en el servidor1 y luego son redirigidos al servidor2, ¿cómo sabrá el servidor2 que una cookie ya está asignada a ese usuario en el servidor1?
Parece que me estoy pensando en círculos. Cuando trabajamos en este tipo de configuración en el pasado usando LBs sin persistencia de sesión, usamos un servidor redis para mantener las sesiones y cada solicitud miraría el servidor redis para la información de la sesión.
fuente
example.com
si los usuarios obtienen una cookie y luego la mantienen en www1.example.com o www2.example.com?Si no puede usar una base de datos de administración de sesiones como Elasticache Redis (Redis por sesiones no debería costar más de $ 15 por mes), la siguiente mejor opción es habilitar sesiones fijas en el ELB;
https://docs.aws.amazon.com/elasticloadbalancing/latest/classic/elb-sticky-sessions.html
Esto obligará a los usuarios a ir al mismo nodo de fondo durante la sesión. Una "cookie generada por el equilibrador de carga" con una vida útil de 900 segundos debería ser lo suficientemente buena, pero puede modificarla.
fuente