Unterschiede

Hier werden die Unterschiede zwischen zwei Versionen angezeigt.

Link zu dieser Vergleichsansicht

Nächste Überarbeitung
Vorhergehende Überarbeitung
de:shibslohttpd:configuration:lazy [2015/12/09 09:49] – angelegt Schreiterer, Frankde:shibslohttpd:configuration:lazy [2015/12/09 11:36] (aktuell) – [Schutz der Anwendung] Schreiterer, Frank
Zeile 4: Zeile 4:
  
 ==== Einrichtung für SessionHook ==== ==== Einrichtung für SessionHook ====
-Die Einrichtung für SessionHook ist identisch der Konfiguration [[de:shibslohttpd:configuration:normal#einrichtung_fuer_sessionhook||Anwendungsszenario normal]]+Die Einrichtung für SessionHook ist identisch der Konfiguration [[de:shibslohttpd:configuration:normal#einrichtung_fuer_sessionhook|Anwendungsszenario normal]].
  
 ==== Schutz der Anwendung ==== ==== Schutz der Anwendung ====
 +
 +Konfiguration **Apache 2.4:** Login
 +
 +<code Apache httpd.conf>
 +<Location /LOGINLAZY>
 +   #KEINE Prüfung mit RewriteMap-Skript, da die Prüfung in der <Location /LAZYAPPLICATION> der Anwendung erfolgt.!!!
 +   authType shibboleth
 +   ShibRequestSetting requireSession true
 +   <RequireAll>
 +      Require shib-attr eppn ~ ^foo*@beispiel-uni.de$
 +      Require shib-attr eduPersonEntitlement ~ ^urn:beispiel-uni.de:foobar$
 +   </RequireAll>
 +</Location>
 +</code>
 +
 +Konfiguration **Apache 2.4:** Anwendung (komplett)
 +<code Apache httpd.conf>
 +<Location /LAZYAPPLICATION>
 +   #Lazy Session Shibboleth
 +   authType shibboleth
 +   ShibRequestSetting requireSession false
 +   Require shibboleth
 +   ShibUseHeaders on
 +   RewriteEngine On
 +   #den Wert der Anwendungssession merken um die Anwendungssession sauber zerstören zu können
 +   RewriteCond %{HTTP:Cookie} APPSESSIONNAME=([^;]+)
 +   RewriteRule .* - [E=appsid:%1]
 +   
 +   #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!
 +   RewriteCond ${shibchecker:lazy,%{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]
 +   
 +   #Login? - das redirect muss automatisch erfolgen, da sonst ein Nutzer die Möglichkeit hätte, ein altes Cookie 
 +   #der Anwendung einzuschleusen und durch den sessionHook und den erneuten Aufruf von shibchecker wird sonst
 +   #eine Anwendungs-Session gefunden, die dann zum Logout führt
 +   RewriteCond %{ENV:shibcheckertype} ^doLogin$
 +   RewriteRule .* https://sp.beispiel-uni.de/LOGINLAZY
 +   
 +   #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>
 +
 +Anmerkung: \\ 
 +Führt die Anwendung selbständig das Redirect zum Shibboleth-Login und auch die Initialisierung der Anwendungssession durch, so verkürzt sich die Konfiguration, da auf die Rückgabewerte doLogin und doAppSession nicht reagiert werden muss.
 +
 +Konfiguration **Apache 2.4:** Anwendung (reduziert)
 +
 +<code Apache httpd.conf>
 +<Location /LAZYAPPLICATION>
 +   #Lazy Session Shibboleth
 +   authType shibboleth
 +   ShibRequestSetting requireSession false
 +   Require shibboleth
 +   ShibUseHeaders on
 +   RewriteEngine On
 +   #den Wert der Anwendungssession merken um die Anwendungssession sauber zerstören zu können
 +   RewriteCond %{HTTP:Cookie} APPSESSIONNAME=([^;]+)
 +   RewriteRule .* - [E=appsid:%1]
 +   #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!
 +   RewriteCond ${shibchecker:lazy,%{HTTP:Shib-Session-ID},APPSESSIONNAME,%{HTTP:Cookie}} ^doLogout$
 +   RewriteRule .*  https://sp.beispiel-uni.de/Path/To/remsess.php?appsid=%{ENV:appsid}
 +</Location>
 +</code>
  • Zuletzt geändert: vor 8 Jahren