Tenho um aplicativo multisite em execução no WordPress. Um de meus clientes solicitou recentemente o SSO para sua organização e solicitou especificamente que eu usasse o shibboleth. No entanto, todos os meus outros subdomínios precisam usar as páginas de login/registro padrão nativas do meu site. Instalei o shibboleth e tenho o SP autenticado com o IdP em um servidor de teste com um site habilitado. No entanto, agora que mudo para vários sites, não tenho certeza de como posso "dizer" ao módulo shibboleth Apache para proteger o conteúdo com base na solicitação HTTP.
Por exemplo, vamos supor que sp.shibboleth.com esteja usando SSO e sp1.shibboleth.com NÃO esteja usando SSO. No entanto, as páginas exibidas para cada subdomínio são exatamente as mesmas, com o conteúdo localizado no mesmo diretório. Como eu configuraria o shibboleth para estar ativo no subdomínio sp, mas não no subdomínio sp1?
Obrigado.
Responder1
Para o Apache, você impõe o uso do Shibboleth por meio de opções muito semelhantes à autenticação HTTP Basic e, da mesma forma, elas podem ser definidas no nível do VirtualHost, como:
<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>
As opções neste VirtualHost não terão efeito em nenhum dos seus outros vhosts.
(Observação: isto é para Shibboleth SP 3.x – acho que costumava ser Require valid-user
no SP 2.x.)