Wir haben eine Drupal-Anwendung, die sso verwendet, um Benutzer anzumelden.
Wir verwenden AWS Classic Load Balancer (ELB). AWS teilt uns mit, dass auf der ELB keine Sitzungspersistenz besteht.
Ich versuche herauszufinden, wie Cookies auf den klassischen Load Balancern ohne Persistenz funktionieren.
example.com DNS zeigt auf die ELB. Es gibt 2 Server im Pool Server1 und Server2
Was wir tun möchten, ist, wenn ein Benutzer seine Startseite beispielsweise auf http://example.com/user/12345/
Server 1 aufruft http://example.com/user/login/sso
, wenn er noch nicht angemeldet ist, auf die SSO-Seite umgeleitet wird , sich automatisch anmeldet und ein Cookie erhält SESS<hexnumber>
und dann zurück zu weitergeleitet wirdhttp://example.com/user/12345/
Es ist uns nicht gestattet, Sitzungsserver (Redis) hinzuzufügen. Dies ist die Garantie dafür, dass diese für beide Weiterleitungen auf Server 1 verbleiben.
Meines Wissens könnte der Benutzer bei jedem Treffer auf 'example.com' entweder auf Server 1 oder Server 2 landen.
Meine Frage:
Wenn sie das Cookie auf Server1 erhalten und dann zu Server2 umgeleitet werden, woher weiß Server2, dass diesem Benutzer auf Server1 bereits ein Cookie zugewiesen ist?
Ich scheine mich im Kreis zu denken. Bei der Arbeit an dieser Art von Setup in der Vergangenheit mit LBs ohne Sitzungspersistenz haben wir einen Redis-Server verwendet, um die Sitzungen zu halten, und jede Anforderung hat den Redis-Server nach Sitzungsinformationen durchsucht.
example.com
wenn die Benutzer ein Cookie erhalten und diese dann auf www1.example.com oder www2.example.com speichern?