Конфигурация единого входа Shibboleth для многосайтовой сети

Конфигурация единого входа Shibboleth для многосайтовой сети

У меня есть многосайтовое приложение, работающее на 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.)

Связанный контент