マルチサイト向け Shibboleth SSO 構成

マルチサイト向け Shibboleth SSO 構成

私は WordPress でマルチサイト アプリケーションを実行しています。最近、顧客の 1 社が組織に SSO を導入するよう依頼し、特に Shibboleth を使用するよう要求しました。ただし、他のすべてのサブドメインでは、サイトに固有のデフォルトのログイン/登録ページを使用する必要があります。Shibboleth をインストールし、1 つのサイトが有効になっているテスト サーバーで SP が IdP で認証するようにしました。ただし、マルチサイトに移行すると、Shibboleth Apache モジュールに HTTP リクエストに基づいてコンテンツを保護するように「指示」する方法がわかりません。

たとえば、sp.shibboleth.com が SSO を使用していて、sp1.shibboleth.com が SSO を使用していないとします。ただし、各サブドメインに表示されるページは、同じディレクトリにあるコンテンツとまったく同じです。sp サブドメインでは有効にして、sp1 サブドメインでは有効にしないように shibboleth を構成するにはどうすればよいでしょうか。

ありがとう。

答え1

Apache の場合、HTTP 基本認証と非常によく似たオプションを通じて 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 でもそうだったと思います。)

関連情報