| Beide Seiten der vorigen Revision Vorhergehende Überarbeitung Nächste Überarbeitung | Vorhergehende Überarbeitung |
| de:shibslohttpd:configuration:normal [2015/12/09 10:33] – Schreiterer, Frank | de:shibslohttpd:configuration:normal [2015/12/09 11:33] (aktuell) – [Schutz der Anwendung] Schreiterer, Frank |
|---|
| <code Apache httpd.conf> | <code Apache httpd.conf> |
| <Location /checker> | <Location /checker> |
| authType shibboleth | authType shibboleth |
| ShibRequestSetting requireSession true | ShibRequestSetting requireSession true |
| ShibUseHeaders on | ShibUseHeaders on |
| RewriteEngine On | RewriteEngine On |
| #den Wert der Anwendungssession merken um die Anwendungssession sauber zerstören zu können | #den Wert der Anwendungssession merken um die Anwendungssession sauber zerstören zu können |
| RewriteCond %{HTTP:Cookie} APPSESSIONNAME=([^;]+) | RewriteCond %{HTTP:Cookie} APPSESSIONNAME=([^;]+) |
| RewriteRule .* - [E=appsid:%1] | RewriteRule .* - [E=appsid:%1] |
| | |
| #Test der Werte mit RewriteMap-Skript ohne mixedLazy | #Test der Werte mit RewriteMap-Skript ohne mixedLazy |
| RewriteCond ${shibchecker:sessionHook,%{HTTP:Shib-Session-ID},APPSESSIONNAME,%{HTTP:Cookie}} ^doLogout$ | RewriteCond ${shibchecker:sessionHook,%{HTTP:Shib-Session-ID},APPSESSIONNAME,%{HTTP:Cookie}} ^doLogout$ |
| RewriteRule .* https://sp.beispiel-uni.de/eviluse/SESSIONREMOVER.php?appsid=%{ENV:appsid} | RewriteRule .* https://sp.beispiel-uni.de/Path/To/remsess.php?appsid=%{ENV:appsid} |
| | |
| #mit mixedLazy darf der Aufruf nicht erfolgen, da in diesem Modus das Einschleusen einer Anwendungssession vor der Shib-Anmeldung nicht zu verhindern ist. | #mit mixedLazy darf der Aufruf nicht erfolgen, da in diesem Modus das Einschleusen einer Anwendungssession |
| #Es wird jedoch vom shibchecker geprüft, ob die Anwendungssession bereits vergeben war. | #vor der Shib-Anmeldung nicht zu verhindern ist. |
| #FALSCH bei mixedLazy | #Es wird jedoch vom shibchecker geprüft, ob die Anwendungssession bereits vergeben war. |
| #RewriteCond ${shibchecker:sessionHook,%{HTTP:Shib-Session-ID},APPSESSIONNAME,%{HTTP:Cookie},mixedLazy} ^doLogout$ | #FALSCH bei mixedLazy |
| | #RewriteCond ${shibchecker:sessionHook,%{HTTP:Shib-Session-ID},APPSESSIONNAME,%{HTTP:Cookie},mixedLazy} ^doLogout$ |
| </Location> | </Location> |
| |
| <code Apache httpd.conf> | <code Apache httpd.conf> |
| <Location /NORMALAPPLICATION> | <Location /NORMALAPPLICATION> |
| authType shibboleth | authType shibboleth |
| ShibRequestSetting requireSession true | ShibRequestSetting requireSession true |
| ShibUseHeaders on | ShibUseHeaders on |
| <RequireAll> | <RequireAll> |
| Require shib-attr eppn ~ ^foo*@beispiel-uni.de$ | Require shib-attr eppn ~ ^foo*@beispiel-uni.de$ |
| Require shib-attr eduPersonEntitlement ~ ^urn:beispiel-uni.de:foobar$ | Require shib-attr eduPersonEntitlement ~ ^urn:beispiel-uni.de:foobar$ |
| </RequireAll> | </RequireAll> |
| #prüfen, ob die Anfrage gültig ist und ggf. das Logout durchführen | #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! | #ACHTUNG: Erst die Anwendungssession zerstören und das das Shibboleth-Logout! |
| RewriteEngine On | RewriteEngine On |
| RewriteCond ${shibchecker:normal,%{HTTP:Shib-Session-ID},APPSESSIONNAME,%{HTTP:Cookie}} ([^;]+) | 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 | #Um die Aufrufe zu minimieren, wird das Ergebnis in einer Umgebungsvariable gespeichert und dann können |
| RewriteRule .* - [E=shibcheckertype:%1] | #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 | #Anwendungssession bekannt machen? - Anwendungssession muss noch initialisiert (shibchecker bekannt |
| RewriteCond %{ENV:shibcheckertype} ^doAppSession$ | #gemacht werden) werden, damit das Anwendungs-Cookie nicht verändert werden kann |
| #über ein extra Skript, wenn ohne weiteres die Anwendungssession initialisiert werden kann | #bevorzugt |
| RewriteRule .* https://sp.beispiel-uni.de/initsess/initsess.php | RewriteCond %{ENV:shibcheckertype} ^doAppSession$ |
| | #über ein extra Skript, wenn ohne weiteres die Anwendungssession initialisiert werden kann |
| #oder über Refresh-Header, falls man das Initialisieren der Anwendungssession nicht selbst triggern kann | RewriteRule .* https://sp.beispiel-uni.de/Path/To/initsess.php |
| #RewriteCond %{ENV:shibcheckertype} ^doAppSession$ | |
| #RewriteRule .* - [E=doAppSession:1] | #oder über Refresh-Header, falls man das Initialisieren der Anwendungssession nicht selbst triggern kann |
| #Header set Refresh "0" env=doAppSession | #RewriteCond %{ENV:shibcheckertype} ^doAppSession$ |
| | #RewriteRule .* - [E=doAppSession:1] |
| #Logout? | #Header set Refresh "0" env=doAppSession |
| RewriteCond %{ENV:shibcheckertype} ^doLogout$ | |
| RewriteRule .* https://sp.beispiel-uni.de/eviluse/SESSIONREMOVER.php?appsid=%{ENV:appsid} | #Logout? |
| | RewriteCond %{ENV:shibcheckertype} ^doLogout$ |
| | RewriteRule .* https://sp.beispiel-uni.de/Path/To/remsess.php?appsid=%{ENV:appsid} |
| </Location> | </Location> |
| </code> | </code> |
| |
| |