FreeBSDで作る学認用Shibboleth SP


学認などで利用されているShibboleth SPをFreeBSD上に構築してみました。環境としてはFreeBSD 10.0-RELEASEです。作業は非常に簡単です。

OSをインストールし終わったら、次のようにしてShibboleth SPをインストールします。

ただし、shibboleth-spのportはapache22に依存しているのですが、標準のapache22はprefork MPMのためにメモリを大量に消費します。できればこういうアプリのパッケージはapacheに依存性を付けないでもらえると嬉しいのですが、mod_shib22.soを入れる必要があるので必要なんでしょうね。

とりあえず、apache22を強制再インストールで問題はなさそうです。

ただし、/usr/local/etc/apache2/httpd.confのCGIモジュールの部分だけは、

から、

に修正しないと、worker MPMのApacheは起動しません。ちなみに、shibbolethのモジュールが

で正常に組み込まれていることも確認して下さい。もし入っていなければLoadModuleの行の最後にでも追加しましょう。

Shibbolethで利用するApacheはSSLの設定が必要です。テストで使っている分にはオレオレ証明書でも問題はないようです。メタデータは学認の場合は学認申請システムで作成可能です。

ApacheとShibboleth-spの起動設定を/etc/rc.confに設定します。

その他諸々のSPの設定は、学認のサイトにある技術ガイドなどを参照してください。学認のサイトではCentOSで解説されていますが、SPの設定に関しては、CentOSでは/etc/shibboleth/のディレクトリがFreeBSDでは/usr/local/etc/shibboleth/にあるということ位を気をつければ良いのではないでしょうか?

あとは、

するなり再起動するなりすれば、Shibboleth-spが起動します。

アプリケーションの認証は、/usr/local/etc/apache22/extra/httpd-ssl.confの<VirtualHost _default_:443>…</VirtualHost>の最後あたりで次のように設定します。

この例では「https://ホスト名/App」をShibbolethで認証し、edupersonAffiliationで教員と学生のみの利用を許可しています。単なる静的コンテンツや一部動的コンテンツを、ユーザ限定公開するだけであればこの設定のみで十分です。

Webアプリの場合も大筋では変わらないのですが、ログイン用のスクリプトあたりのみをShibboleth認証にして、あとはそこで発行されたセッションをWebアプリ側で管理するようにすれば、無駄なShibbolethの認証チェックが不要になって効率的かと思われます。

コメントを残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です