Apacheの認証でShibboleth SPを用いたSAMLを使う
SP側の環境はUbuntu 12.04 LTS。IdPは今までさんざんいじくってきたSimpleSAMLphp。メタデータを登録するという以外にIdP側でやらないといけないことはない、と期待したい。
CentOS 6.3 (final) にはSPのインストールに当たる libapache2-mod-shib2 パッケージに該当するものがないようなので、おそらくもう少し面倒になるかもしんない
流れは以下の通り。
CentOS 6.3 (final) にはSPのインストールに当たる libapache2-mod-shib2 パッケージに該当するものがないようなので、おそらくもう少し面倒になるかもしんない
流れは以下の通り。
- SPとなるShibbolethをインストール (libapache2-mod-shib2)
- SPの設定ファイル (/etc/shibboleth/shibboleth2.xml)をいじる。
- /etc/shibbolethに併せてIdPのメタデータを登録する。
- ApacheにShibbolethを認識させる
- アクセス制御したいディレクトリに対して実際にShibboleth認証を適用する。
- IdP側にSPのメタデータを登録する
以下のページを参考にした
- https://wiki.umn.edu/ShibAuth/ShibbolethForApacheOnDebianBasedSystems 全体図が一番分かりやすい。shibboleth2.xmlの設定は以下に譲るべき
- https://wiki.shibboleth.net/confluence/display/SHIB2/NativeSPGettingStarted libapache2-mod-shib2をインストールした後はこのドキュメント一つでおそらく問題無い (IdPが複数あるとかそういう話があると厄介だが)。SPのメタデータについて言及がなくて「えっ」とかなる。
- https://wiki.umn.edu/ShibAuth/ShibbolethMetadataForServiceProviders これがないとSPのメタデータを手に入れられない
- http://blogs.forgerock.org/petermajor/2011/10/federation-with-shibboleth-sp-apache-module/ IdPがOpenAMであることを仮定しているため、やや今回のケースとは異なるが参考にはなる
以下、やや混乱した部分についてだけ書く。
○ 設定ファイル (shibboleth2.xml) をいじる。IdPのメタデータを登録する
Shibboleth本家のNativeSPGettingStartedでほとんど足りる。
Errorsタグで要求されているlogo.jpg とmain.css は Ubuntuでは /usr/share/shibboleth/ 下にある模様。これらを、こちらにあるとおりAliasで参照させる。
か、あるいは例えば /var/www/ 直下におきておき、<Errors supportContact="your@email.com"
Alias /shibboleth-sp/logo.jpg /usr/share/shibboleth/logo.jpg
Alias /shibboleth-sp/main.css /usr/share/shibboleth/main.css
か、あるいは例えば /var/www/ 直下におきておき、<Errors supportContact="your@email.com"
logoLocation="/logo.jpg" styleSheet="/main.css"/>的に設定すれば、エラーが出た時にしぼれすのワシくさいのが出てくるというだけ。使われるhtmlは /etc/shibboleth/sessionError.html にあるようだ。
ふぇでれーしょんなどに頼らなければ、EntityIDを2個指定するだけでほぼ終わる。 ApplicationDefaults 側が自分のEntityID、SSO側がIdP側のEntityIDなので間違えない。言い方を変えると、一つ目は「自分で勝手に決める」、2つ目は「IdPのメタデータから取ってくる」。
メタデータは /etc/shibboleth/idp-metadata.xml とか作って <MetadataProvider type="XML" file="/etc/shibboleth/idp-metadata.xml"/> とかやればいい。
○ ApacheにShibbolethを認識させる
○ IdP側にSPのメタデータを登録する
こちらの通り wget -O metadata.xml https://(hostname)/Shibboleth.sso/Metadata とかやれば手に入るそうだ。
○ 正しく動作してるか確認
Single Logout をする方法が見当たらない (クッキー削除すれば良いとは思うけど) ので、ChromeであればIncognito Windowを使ってSPを使っているサイトにアクセスしてみると良い。
○ 比較的どうでもよい補足
libapache2-mod-shib2 はShibboleth SPのためのパッケージなので、IdPにはならない。あじゃーん。
libapache2-mod-shib2 はShibboleth SPのためのパッケージなので、IdPにはならない。あじゃーん。