authType shibboleth ShibRequestSetting requireSession true ShibUseHeaders on Require shib-attr eppn ~ ^foo*@beispiel-uni.de$ Require shib-attr eduPersonEntitlement ~ ^urn:beispiel-uni.de:foobar$ #prüfen, ob die Anfrage gültig ist und ggf. das Logout durchführen #ACHTUNG: Erst die Anwendungssession zerstören und das das Shibboleth-Logout! RewriteEngine On RewriteCond ${shibchecker:normal,%{HTTP:Shib-Session-ID},APPSESSIONNAME,%{HTTP:Cookie}} ([^;]+) #Um die Aufrufe zu minimieren, wird das Ergebnis in einer Umgebungsvariable gespeichert und dann können #die verschiedenen Rückgabewerte wieder in einzelnen Bedingungen ausgewertet werden RewriteRule .* - [E=shibcheckertype:%1] #Anwendungssession bekannt machen? - Anwendungssession muss noch initialisiert (shibchecker bekannt #gemacht werden) werden, damit das Anwendungs-Cookie nicht verändert werden kann #bevorzugt RewriteCond %{ENV:shibcheckertype} ^doAppSession$ #über ein extra Skript, wenn ohne weiteres die Anwendungssession initialisiert werden kann RewriteRule .* https://sp.beispiel-uni.de/Path/To/initsess.php #oder über Refresh-Header, falls man das Initialisieren der Anwendungssession nicht selbst triggern kann #RewriteCond %{ENV:shibcheckertype} ^doAppSession$ #RewriteRule .* - [E=doAppSession:1] #Header set Refresh "0" env=doAppSession #Logout? RewriteCond %{ENV:shibcheckertype} ^doLogout$ RewriteRule .* https://sp.beispiel-uni.de/Path/To/remsess.php?appsid=%{ENV:appsid}