Skip to content

IFrame caveats

Michael Prankl edited this page Jan 24, 2023 · 2 revisions

Der Appswitcher wird in anderen Applikationen mittels <iframe> eingebunden. Damit die Kommunikation mit Keycloak in diesem iframe funktioniert müssen Rahmenbedingungen für die Verwendung von Cookies eingehalten werden.

Cookies

Damit der automatische OpenID Login am appswitcher Client in einem iframe funktioniert, müssen im IFrame die Session Cookies vom Keycloak mitgeschickt werden. Keycloak setzt hierzu bei einer Anmeldung drei Cookies:

  • AUTH_SESSION_ID
  • KEYCLOAK_IDENTITY
  • KEYCLOAK_SESSION

Sind diese Cookies nach einer Anmeldung des Users vorhanden, kann sich das iframe ohne weitere Userinteraktion am Keycloak authentifizieren. Diese Cookies werden automatisch bei einer Keycloak-Anmeldung am entsprechenden Realm durch den Keycloak im Browser gesetzt.

🚧 add clean screenshot

Desweiteren setzt der Appswitcher im Browser ein eigenes Session-Cookie. Auch dieses Cookie wird für den Anmeldeflow benötigt.

🚧 add clean screenshot

Third Party Cookies

Da der Aufruf des Appswitcher in einem iframe eingebettet in einer anderen Anwendung/Domäne erfolgt, werden die Cookies vo Keycloak und von Appswitcher als sogenannte Third-Party Cookies gewertet. Solche Cookies unterliegen besonderer Restriktionen:

  • Der Browser muss grundsätzlich Third-Party Cookies für eine Domäne erlauben.
  • Das Cookie muss für die Nutzung als Third-Party Cookie von der erstellenden Instanz freigegeben sein (siehe SameSite Cookies)

Damit ein Cookie für die Nutzung als Third-Party Cookie zugelassen ist, müssen zwei Attribute im Cookie gesetzt sein:

  • SameSite: NONE
  • Secure: true

Zusätzlich darf der Browser die Verwendung von Third-Party Cookies nicht generell verbieten.

Clone this wiki locally