Ich habe eine Multisite-Anwendung, die in WordPress läuft. Einer meiner Kunden hat kürzlich nach SSO für seine Organisation gefragt und ausdrücklich darum gebeten, dass ich Shibboleth verwende. Alle meine anderen Subdomains müssen jedoch die standardmäßigen Anmelde-/Registrierungsseiten meiner Site verwenden. Ich habe Shibboleth installiert und den SP mit dem IdP auf einem Testserver mit einer aktivierten Site authentifizieren lassen. Da ich jetzt jedoch zu Multisite wechsle, bin ich mir nicht sicher, wie ich dem Shibboleth-Apache-Modul „sagen“ kann, Inhalte basierend auf der HTTP-Anforderung zu schützen.
Nehmen wir beispielsweise an, dass sp.shibboleth.com SSO verwendet und sp1.shibboleth.com SSO NICHT verwendet. Die für jede Subdomäne angezeigten Seiten sind jedoch genau dieselben und der Inhalt befindet sich im selben Verzeichnis. Wie kann ich Shibboleth so konfigurieren, dass es für die SP-Subdomäne aktiv ist, aber nicht für die SP1-Subdomäne?
Danke.
Antwort1
Bei Apache erzwingen Sie die Verwendung von Shibboleth durch Optionen, die denen der HTTP-Basisauthentifizierung sehr ähnlich sind. Auf ähnliche Weise können sie auf VirtualHost-Ebene festgelegt werden, beispielsweise:
<VirtualHost *:443>
ServerName site1.example.com
# Useful to distinguish multiple sites within shibboleh.xml
# (for giving them different entityIDs)
<Location />
ShibRequestSetting applicationId site1
</Location>
<Location /Shibboleth.sso>
SetHandler shib
</Location>
# The actual path you want to protect
<Location /wp-whatever>
AuthType Shibboleth
ShibRequestSetting requireSession On
Require shib-session
</Location>
</Location>
Optionen in diesem virtuellen Host haben keine Auswirkungen auf Ihre anderen virtuellen Hosts.
(Hinweis: Dies gilt für Shibboleth SP 3.x – ich glaube, es war früher Require valid-user
in SP 2.x enthalten.)