Tengo una aplicación multisitio ejecutándose en WordPress. Uno de mis clientes solicitó recientemente SSO para su organización y solicitó específicamente que usara shibboleth. Sin embargo, todos mis otros subdominios necesitan usar las páginas de inicio de sesión/registro predeterminadas nativas de mi sitio. Instalé shibboleth y el SP se autentica con el IdP en un servidor de prueba con un sitio habilitado. Sin embargo, ahora que paso a varios sitios, no estoy seguro de cómo puedo "decirle" al módulo shibboleth de Apache que proteja el contenido en función de la solicitud HTTP.
Por ejemplo, supongamos que sp.shibboleth.com usa SSO y sp1.shibboleth.com NO usa SSO. Sin embargo, las páginas que se muestran para cada subdominio son exactamente las mismas y el contenido se encuentra en el mismo directorio. ¿Cómo haría para configurar shibboleth para que esté activo para el subdominio sp pero no para el subdominio sp1?
Gracias.
Respuesta1
Para Apache, se aplica el uso de Shibboleth a través de opciones muy similares a la autenticación básica HTTP y, de manera similar, se pueden configurar en el nivel de VirtualHost, como por ejemplo:
<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>
Las opciones de este VirtualHost no tendrán ningún efecto en ninguno de sus otros vhosts.
(Nota: esto es para Shibboleth SP 3.x; creo que solía estar Require valid-user
en SP 2.x).