Dies ist eine alte Version des Dokuments!


Lösung

Am Apache-Webserver selbst wird eine RewriteMap konfiguriert, die ein externes Programm aufruft. Alle Randbedingungen im Apache-Webserver direkt abzubilden, ist nahezu unmöglich, weshalb auf eine Implementierung außerhalb der Apache-Webserver-Umgebung ausgewichen wurde. Die Referenzimplementierung zum Prüfskript wurde in PHP mit memcached durchgeführt.

Zusätzlich muss die ab dem Shibboleth-Service-Provider 2.5 verfügbare Technologie des sessionHook https://wiki.shibboleth.net/confluence/display/SHIB2/NativeSPInterestingFeatures#NativeSPInterestingFeatures-Post-LoginHooksandAttributeChecking verwendet werden. Damit kann beim Login ein zusätzlicher Request erzeugt werden, der benötigt wird, um zu erkennen, ob bereits eine Anwendungs-Session vorhanden ist.

Die RewriteMap wird mit Parametern vom Shibboleth-Deamon und auch vom Webserver aufgerufen. Parameter des Shibboleth-Deamons stehen allerdings nicht zu jeder Zeit über Environment-Variablen zur Verfügung, weshalb eine Konfiguration mit ShibUseHeaders on erfolgen muss. Mögliche Probleme werden unter https://wiki.shibboleth.net/confluence/display/SHIB2/NativeSPSpoofChecking erörtert, jedoch wird vom Shibboleth-Deamon ein HeaderSpoofing mit dem Leeren der Shibboleth-Session quittiert, sodass die Gefahr als eher gering eingestuft werden kann. Es wird jedoch dringend empfohlen, in den Shibboleth nachgelagerten Anwendungen auf Environment-Variablen zuzugreifen.

  • Zuletzt geändert: vor 9 Jahren