Unterschiede

Hier werden die Unterschiede zwischen zwei Versionen angezeigt.

Link zu dieser Vergleichsansicht

Beide Seiten der vorigen Revision Vorhergehende Überarbeitung
Nächste Überarbeitung
Vorhergehende Überarbeitung
de:shibslohttpd:configuration:normal [2015/12/09 09:35] Schreiterer, Frankde:shibslohttpd:configuration:normal [2015/12/09 11:33] (aktuell) – [Schutz der Anwendung] Schreiterer, Frank
Zeile 1: Zeile 1:
 ===== Konfiguration Anwendungsszenario normal ===== ===== Konfiguration Anwendungsszenario normal =====
 +
 +**In allen Konfigurationsbeispielen muss APPSESSIONNAME durch den Cookie-Namen der zu schützen Anwendung ersetzt werden, die den Identifier der Anwendungs-Session enthält.**
  
 ==== Einrichtung für SessionHook ==== ==== Einrichtung für SessionHook ====
Zeile 5: Zeile 7:
 Das Skript [[ |checker.php]], welches von Shibd beim Login einmal über den SessionHook aufgerufen wird, muss auch in einem komplett durch Shibboleth geschützten Verzeichnis liegen. Die Konfiguration darf nur bei den Anwendungsszenarien [[de:shibslohttpd:introduction#anwendungsszenarien|normal und lazy]] erfolgen, nicht bei [[de:shibslohttpd:introduction#anwendungsszenarien|mixedLazy]]! Das Skript [[ |checker.php]], welches von Shibd beim Login einmal über den SessionHook aufgerufen wird, muss auch in einem komplett durch Shibboleth geschützten Verzeichnis liegen. Die Konfiguration darf nur bei den Anwendungsszenarien [[de:shibslohttpd:introduction#anwendungsszenarien|normal und lazy]] erfolgen, nicht bei [[de:shibslohttpd:introduction#anwendungsszenarien|mixedLazy]]!
  
-Konfiguration **Apache:**+Konfiguration **Apache 2.4:**
 <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>
  
Zeile 34: Zeile 37:
    sessionHook="/checker/checker.php">    sessionHook="/checker/checker.php">
 </code> </code>
 +
 +==== Schutz der Anwendung ====
 +
 +Konfiguration **Apache 2.4:**
 +
 +<code Apache httpd.conf>
 +<Location /NORMALAPPLICATION>
 +   authType shibboleth
 +   ShibRequestSetting requireSession true
 +   ShibUseHeaders on
 +   <RequireAll>
 +      Require shib-attr eppn ~ ^foo*@beispiel-uni.de$
 +      Require shib-attr eduPersonEntitlement ~ ^urn:beispiel-uni.de:foobar$
 +   </RequireAll>
 +   #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}
 +</Location>
 +</code>
 +
  
  • Zuletzt geändert: vor 8 Jahren