Session Terminierung STS-PEP

Für Applikationen ausserhalb der Netze der Bundesverwaltung ist lediglich das Szenario Session Terminierung durch Logout möglich, da der STS-PEP von sich aus keine Möglichkeit hat die Teilnehmer der SSO Sitzung zu informieren, ohne dass ein SAML Single Logout durch den Benutzer angestossen wurde.

Session Terminierung durch Logout-Anwendungen mit STS-PEPs
Die folgende Sequenz erklärt den Prozess der Sitzungsbeendigung für Anwendungen, die nicht hinter einem STS-PEP, sondern an einem anderen Ort gehostet werden (BV-Net, Cloud). Da diese Applikationen den STS-PEP nicht als Front Door für alle Verbindungen zwischen Webbrowser und Applikation benutzen, kann der STS-PEP nicht der Master über alle Session sein. Allerdings ist er, er als SAML IdP aus Sicht der Applikationen, die einzige Stelle die alle innerhalb der SSO Session verwendeten Service Provider kennt und diese über das Ende einer Session informieren kann.

Die Ausgangslage ist eine bestehende Session des Browser des Benutzers mit dem STS-PEP. In der SSO Session wurde vom Benutzer Applikation A und Applikation B verwendet. Beide Applikationen haben in der Folge je einen SAML AuthnRequest an den STS-PEP gesendet und eine SAML Response von diesem erhalten.

Session Terminierung durch Logout für Applikationen ausserhalb der Netze der Bundesverwaltung
Session Terminierung durch Logout für Applikationen ausserhalb der Netze der Bundesverwaltung


  1. Der Benutzer sendet einen HTTP Request an die Logout URI von Applikation A.
  2. Applikation A erstellt einen signierten SAML LogoutRequest zuhanden des STS-PEP. Sie bettet den SAML LogoutRequest in ein selbstübermittelndes HTML Formular ein und sendet dieses als HTTP Response an den Webbrowser.
  3. Der Webbrowser sendet den LogoutRequest per HTTP POST an die Single Logout Location URL des STS-PEP.
  4. Der STS-PEP als IdP prüft den SAML LogoutRequest auf dessen Signatur und sucht nach der entsprechenden SSO Session. Er bildet eine Liste mit allen über den Logout zu informierenden Service Providern. Der STS-PEP erstellt einen signierten SAML LogoutRequest zuhanden der Applikation B.
  5. Der STS-PEP übermittelt den SAML Logout Request mittels selbstübermittelndem HTML Formular in der HTTP Response an den Webbrowser.
  6. Der Webbrowser sendet den LogoutRequest per HTTP POST an die SingleLogout Location URL von Applikation B.
  7. Applikation B prüft den SAML LogoutRequest, identifiziert die Session und generiert eine signierte SAML LogoutResponse. Die Session auf Applikation B wird beendet.
  8. Die LogoutResponse wird mittels selbstübermittelndem HTML Formular in der HTTP Response an den Webbrowser übermittelt.
  9. Der Webbrowser sendet die LogoutResponse per HTTP POST an den STS-PEP.
  10. Der STS-PEP prüft die LogoutResponse. Sind noch weitere Applikationen in der SSO Session verwendet worden, so werden diese in der gleichen Art über das Ende der Session informiert. War Applikation B die letzte Applikation, welche den SAML Single-Logout nicht angestossen hat, so erstellt der STS-PEP eine signierte SAML Logout Response zuhanden von Applikation A.
  11. Die LogoutResponse wird in ein selbstübermittelndes HTML Formular eingebettet und in der HTTP Response an den Browser des Benutzers geschickt.
  12. Der Webbrowser sendet die LogoutResponse per HTTP POST an Applikation A.
  13. Applikation A prüft die LogoutResponse und beendet die Session des Benutzers.
  14. Applikation A sendet an den Webbrowser des Benutzers in der HTTP Response die Bestätigung, dass der Logout durchgeführt wurde und die SSO Session beendet wurde.

Session Terminierung durch Session Inaktivität

Eine weitere Möglichkeit, warum die Session des Benutzers auf dem STS-PEP invalidiert und beendet wird, ist eine längere Inaktivität auf der Session. Der Abbau von inaktiven Sessions erfolgt einerseits aus Sicherheitsgründen und andererseits, um nicht benötigte Systemressourcen freizugeben.

Die vom STS-PEP auf Grund einer längeren Inaktivität der Session eingeleitete Terminierung der Session ist im Folgenden Ablauf beschrieben. Da der Logout nicht über einen Request des Benutzers angestossen wurde, kann dem Benutzer keine Information über den erfolgen Logout angezeigt werden. Sendet der Benutzer nach dem Beenden der Session auf dem STS-PEP durch zu lange Inaktivität wieder einen Request an den STS-PEP, so wird eine neue Session mit dem Webbrowser des Benutzers gestartet.

Session Terminierung wegen Session Inaktivität
Session Terminierung wegen Session Inaktivität


  1. Der Webbrowser sendet einen HTTP Request für Applikation A an den STS-PEP in der laufenden Session.
  2. Der STS-PEP sendet den HTTP Request an die Applikation A in der laufenden Session.
  3. Die Applikation A sendet die HTTP Response an den STS-PEP.
  4. Der STS-PEP sendet die Response an den Webbrowser.
  5. Der Webbrowser sendet einen HTTP Request für Applikation B an den STS-PEP in der laufenden Session.
  6. Der STS-PEP sendet den HTTP Request an die Applikation B in der laufenden Session.
  7. Die Applikation B sendet die HTTP Response an den STS-PEP.
  8. Der STS-PEP sendet die HTTP Response an den Webbrowser.
  9. Nach Ablauf des auf dem STS-PEPP definierten Inactivity Intervall (Zeitspanne in welchen auf dieser Session keine Requests mehr vom PEP empfangen wurden) initiiert der STS-PEP von sich aus den Logout auf Applikation A und sendet einen HTTP Request auf den Logout URL der Applikation, zusammen mit dem Session Cookie das die Applikation ausgestellt hat.
  10. Die Applikation A invalidiert die Session des Benutzers.
  11. Die Applikation A sendet eine HTTP Response an den STS-PEP. Diese HTTP Response wird nicht an den Webbrowser weitergeleitet, da der Browser keinen HTTP Request gestellt hat.
  12. Der STS-PEP sendet einen HTTP Request an die Logout URL der Applikation B zusammen mit dem Session Cookie das die Applikation B ausgestellt hat.
  13. Die Applikation B sendet eine HTTP Response an den STS-PEP. Diese HTTP Response wird nicht an den Webbrowser weitergeleitet, da der Browser keinen HTTP Request gestellt hat.
  14. Der STS-PEP invalidiert die von ihm geführte Session des Benutzers. Das Beenden der Session auf dem PEP geschieht unabhängig von der Reaktion der Applikationen auf den Aufruf der Logout URL.

Session Terminierung durch Erreichen der maximalen Session Dauer

Eine weitere Möglichkeit, weshalb die Session des Benutzers auf dem STS-PEP invalidiert und abgebaut wird, ist das Erreichen der maximal zulässigen Session Lebensdauer. Wird diese erreicht, so wird die Session auf dem STS-PEP automatisch invalidiert und alle während der Session verwendeten Applikationen werden vom STS-PEP über das Invalideren der Session notifiziert. Die Session wird dabei auch dann invalidiert, wenn auf der Session noch Aktivität stattfindet. Die Maximale Session Dauer auf dem STS-PEP ist begrenzt.

Die vom STS-PEP PEP initiierte Terminierung der Session, eingeleitet auf Grund des Erreichens der maximalen Session Dauer, läuft wie unten beschrieben ab. SAML 2.0 Single Logout (SLO) wird nicht unterstützt.

Session Terminierung max. Session Lifetime
Session Terminierung max. Session Lifetime


Die Ausgangslage ist eine bereits länger bestehende Session zwischen dem Webbrowser des Benutzers und dem STS-PEP. Während der Session werden die Applikationen A und B verwendet.
  1. Der Webbrowser schickt einen HTTP Request an den STS-PEP für Applikation A.
  2. Der STS-PEP schickt den HTTP Request nach Prüfung an die Applikation A weiter.
  3. Die Applikation A verarbeitet den HTTP Request und sendet die HTTP Response an den STS-PEP.
  4. Der STS-PEP sendet die HTTP Response an den Webbrowser.
  5. Der Webbrowser schickt einen HTTP Request an den STS-PEP für Applikation B.
  6. Der STS-PEP schickt den HTTP Request nach Prüfung an die Applikation B weiter.
  7. Die Applikation B verarbeitet den HTTP Request und sendet die Response an den STS-PEP.
  8. Der STS-PEP sendet die HTTP Response an den Webbrowser.
  9. Die Session des Benutzers auf dem STS-PEP erreicht die maximale Lebensdauer.
  10. Der STS-PEP sendet einen HTTP Request an den Logout URL der Applikation A zusammen mit dem Session Cookie der Applikation A.
  11. Die Applikation A invalidiert die Session des Benutzers.
  12. Die Applikation A sendet die HTTP Response an den PEP. Diese HTTP Response wird nicht an den Webbrowser des Benutzers weitergegeben.
  13. Der STS-PEP sendet einen HTTP Request an den Logout URL der Applikation B zusammen mit dem Session Cookie der Applikation B.
  14. Die Applikation B invalidiert die Session des Benutzers.
  15. Die Applikation B sendet die HTTP Response an den STS-PEP. Diese Response wird vom STS-PEP nicht an den Browser des Benutzers weitergegeben.
  16. Der STS-PEP invalidiert die Session des Benutzers.
  17. Der Webbrowser des Benutzers sendet einen neuen HTTP Request an den STS-PEP zusammen mit dem mittlerweile ungültigen STS-PEP Session Cookie.
  18. Der STS-PEP prüft den HTTP Request und erkennt, dass ein neuer Security Kontext aufgebaut werden muss.
  19. Der STS-PEP redirektet den Webbrowser auf den STS-PEP Login URL. Dabei wird mit der HTTP Response ein neues Session Cookie im Webbrowser gesetzt.
  20. Der Webbrowser sendet den HTTP Request auf den STS-PEP Login URL.
Der weitere Aufbau der Session und die Weiterleitung der Requests erfolgen wie oben beschrieben.