Da wir im vorherigen Schritt das Speichern von Session-Informationen so umgestellt haben, dass eine lokale SQL-Datenbank verwendet wird, kann nun auch Single Logout (SLO) im IdP aktiviert werden:
# Track information about SPs logged into idp.session.trackSPSessions = true # Support lookup by SP for SAML logout idp.session.secondaryServiceIndex = true # damit der User eine ausführliche Logout-Rückmeldung vom IdP bekommt: # Whether to lookup metadata, etc. for every SP involved in a logout # for use by user interface logic; adds overhead so off by default. idp.logout.elaboration = true
Starten Sie Tomcat neu, um die neuen Einstellungen zu aktivieren (dabei Logdateien mitverfolgen!):
root@idp:~# systemctl restart tomcat10
Die Logout-Seite enthält standardmäßig eine Bemerkung der Shibboleth-Entwickler, dass die Seite angepasst werden sollte. Löschen Sie die entsprechenden Zeilen, kommentieren Sie sie wie folgt aus oder ersetzen Sie den Text durch einen eigenen:
<!-- ... --> <div class="content"> <div class="column one"> <!-- <p>This page is displayed when a logout operation at the Identity Provider completes. This page is an example and should be customized. It is not fully internationalized because the presentation will be a highly localized decision, and we don't have a good suggestion for a default.</p> <br> --> #if ( $logoutContext and !$logoutContext.getSessionMap().isEmpty() ) <!-- ... -->
Diese Änderung wird ohne Neustart wirksam.
Testen Sie die Logout-Funktionalität mithilfe des DFN-Test-SP2. Nach dem Login finden Sie unterhalb der Attribute den „Logout“-Link welcher Sie zum IdP zurückleiten sollte. Dort sollte dann die Erfolgsmeldung über das erfolgte Logout angezeigt werden.
Achtung: Sollte trotz vermeintlich richtiger Konfiguration das Logout nicht funktionieren, prüfen Sie bitte, ob in der Apache-Konfiguration die X-FRAME-OPTION „SAMEORIGIN“ gesetzt ist, siehe auch HTTP Server.
Zu weiteren Konfigurationsmöglichkeiten und Hintergrundinformationen siehe die Dokumentation im Shibboleth-Wiki.
prüfen! IIS liefert beim Logout einen HTTP-Fehler 404 zurück:
Testen Sie nochmal einen Login mithilfe der DFN-Test-SP(s) und überzeugen Sie sich dass Single Logout funktioniert.