Wenn das Prüfskript im Apache-Webserver für die RewriteMap konfiguriert wurde, wird dieses in der RewriteCond im zu schützenden Verzeichnis aufgerufen:
RewriteCond ${Context,Shib-Session-ID,Name des Cookies der Anwendungssession,Cookies,[,mixedLazy]} ^return$
Der Aufruf erfolgt mit 4 Parametern und einem optionalen Parameter
Das Prüfskript selbst führt im ersten Schritt grundsätzliche Validierungen durch. Die erste Prüfung ist immer, ob die Shib-Session-ID aus Parameter 2 mit der ermittelten Shib-Session-ID aus dem übertragenen Cookie Parameter 4 übereinstimmt. Falls nicht, ist die Anfrage ungültig. Dies dient zur Erkennung von Manipulationen am Session-Cookie bzw. an den Headern. Weiterhin wird in diesem Schritt auch geprüft, ob versucht wurde, zusätzliche Anwendungs-Sessions und / oder Cookies mit Shibboleth-Sessions einzuschleusen. Ist dies der Fall, ist die Anfrage ungültig.
Im Context „sessionHook“ wird geprüft, ob keine Anwendungs-Session vorhanden ist, bei normal und lazy wird die Anwendungs-Session und die Shibboleth-Session gegen ein Muster geprüft. Beide Prüfungen müssen erfolgreich sein. Ist diese Prüfung erfolgreich werden erweiterte Prüfungen durchgeführt.
In de erweiterten Prüfung wird untersucht, ob die Shib-Session-ID im Datenspeicher existiert und zu dieser die passende Anwendungs-Session-ID geliefert wird. Sind die Anwendungs-Session-ID verschieden, ist die Anfrage ungültig, sonst gültig. Anderen falls handelt es sich um einen neuen Eintrag, der dann im Datenspeicher vermerkt wird und die Anfrage als gültig erklärt.
Zusätzlich erfolgt bei mixedLazy bei einem Neueintrag die Prüfung, ob die Anwendungs-Session-ID bereits vergeben wurde. Ist die Anwendungs-Session-ID bereits vergeben, ist die Anfrage ungültig.
Es existieren noch zwei Sonderzustände:
Siehe auch: Konfigurationsbeispiele
Weiter zu Prüfskript