Die Herausforderung
Ein Kunde von mir wollte eine auf XPages basierende Domino-Anwendung in sein CRM integrieren. Dieses ließ nur eine Integration via iFrame zu. Die Integration war schnell erledigt und die Anwendung passte sich gut ein. Doch beim ersten Umschalten in den Bearbeitsmodus passierte das:
»Page instance not found for ID … It may have expired.« Offenbar fand er die SessionID nicht mehr!
Die Webentwicklerin meines Kunden wies mich darauf hin, dass beim Wechseln der Domäne (in diesem Fall von der Domäne der CRM-Anwendung zum interenen Domino-Webserver) das SameSite-Cookie auf »None« gesetzt werden muss, damit die Anwendung im iFrame mit dem Chrome-Browser funktioniert.
Eine Untersuchung der XPage ergab, dass gar kein SameSite-Cookie gesetzt war:
Wie konnte ich das bewerkstelligen?
Die Lösung
Auf folgender Seite der HCl wurde ich schnell fündig:
Man muss im Domino-Datenverzeichnis im Ordner Properties eine Datei namens »xsp.properties« mit dem folgenenden Inhalt erstellen:
xsp.sessionid.cookie.secure=true
xsp.sessionid.cookie.samesite=3
Gegebenenfalls müssen Sie auf Ihrem Server eine andere Ziffer eintragen als 3 = None. Folgende Möglichkeiten stehen zur Verfügung:
- 0 = Deaktiviert (Standard)
- 1 = Streng
- 2 = Lax
- 3 = None
Hinweis: Der Domino-Server, von dem die XPage-Anwendung gehostet wird, muss außerdem so konfiguriert sein, dass er nur sichere Anfragen (via HTTPS) akzeptiert.
Danach müssen Sie den HTTP-Task (oder gleich den ganzen Domino-Server) neu starten.
Und schon ist eine Bearbeitung möglich:
Untersucht man jetzt die Seite, ist das SameSite-Cookie richtig gesetzt: