У меня есть многосайтовое приложение, работающее на WordPress. Недавно один из моих клиентов запросил SSO для своей организации и конкретно попросил, чтобы я использовал shibboleth. Однако все мои другие поддомены должны использовать страницы входа/регистрации по умолчанию, родные для моего сайта. Я установил shibboleth и SP аутентифицируется с IdP на тестовом сервере с одним включенным сайтом. Однако теперь, когда я перехожу на многосайтовый режим, я не уверен, как я могу «сказать» модулю Apache shibboleth защищать контент на основе запроса HTTP.
Например, предположим, что sp.shibboleth.com использует SSO, а sp1.shibboleth.com НЕ использует SSO. Однако страницы, отображаемые для каждого поддомена, абсолютно одинаковы, а их содержимое находится в одном и том же каталоге. Как мне настроить shibboleth так, чтобы он был активен для поддомена sp, но не для поддомена sp1?
Спасибо.
решение1
Для Apache использование Shibboleth обеспечивается с помощью параметров, очень похожих на базовую аутентификацию HTTP, и их также можно задать на уровне VirtualHost, например:
<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>
Параметры этого виртуального хоста не повлияют ни на один из ваших других виртуальных хостов.
(Примечание: это для Shibboleth SP 3.x — я думаю, это было Require valid-user
в SP 2.x.)