多站点的 Shibboleth SSO 配置

多站点的 Shibboleth SSO 配置

我在 WordPress 中运行一个多站点应用程序。我的一位客户最近要求他们的组织使用 SSO,并特别要求我使用 shibboleth。但是,我的所有其他子域都需要使用我站点原生的默认登录/注册页面。我已经安装了 shibboleth,并让 SP 在启用了一个站点的测试服务器上与 IdP 进行身份验证。但是,现在当我转向多站点时,我不确定如何“告诉”shibboleth apache 模块根据请求 HTTP 请求保护内容。

例如,假设 sp.shibboleth.com 使用 SSO,而 sp1.shibboleth.com 未使用 SSO。但是,每个子域显示的页面完全相同,内容位于同一目录中。我该如何配置 shibboleth,使其对 sp 子域有效,但不对 sp1 子域有效?

谢谢。

答案1

对于 Apache,您可以通过与 HTTP Basic auth 非常相似的选项强制使用 Shibboleth,同样,它们可以在 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>

此 VirtualHost 中的选项不会对任何其他 vhost 产生影响。

(注意:这是针对 Shibboleth SP 3.x 的——我认为它曾经是Require valid-userSP 2.x。)

相关内容