Shibboleth」カテゴリーアーカイブ

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の行の最後にでも追加しましょう。

続きを読む

学認FPSP(Filter Per SP)の改良

(この内容は、学認メーリングリストで、オープンソース・ソリューション・テクノロジの相本様、辻口様からいただいたアドバイスやパッチを含んだ内容となっています)

学認FPSPとは

学認は認証インフラとしてShibbolethを利用しているのですが、Shibbolethは認証と認可をIdPとSPとに完全に分離しているため、属性によってユーザが利用できないSPを利用しようとすると、次のような行動パターンになってしまいます。

  1. SPのサイトで自IdPを選択
  2. IdPでユーザ名とパスワードを入力してログイン
  3. SPのサイトに戻ってそこで利用を断られる

認証と認可の分離という観点から言えばこれは正しいといえるのですが、通常の1サイトで完結したアプリケーションの利用者にとっては今ひとつわかりにくいのも事実です。

また、本来であればSP側でユーザ属性に基づいて認可を行ってほしいのに、ユーザ属性が何であっても受け入れてしまうSPもあります(なおかつ、そのまま利用するとソフトウェアライセンス違反になってしまうものもあります)。

このような問題を解決するには、IdP側である程度の認可情報を管理し、SPに移動する前に制御を行いたいと思うのですが、そのような目的に利用できるものとしてFPSP(Filter Per SP)というツールが提供されています。

FPSPの問題点

ところが実際のところ、このFPSPを利用してみると色々と問題があります。バグといえる問題点としては、

  • 一旦FPSPでログインを拒絶されると、その後シングルサインオン自体が無効となり、他のSPにもログインできなくなる(ブラウザを終了させるか、タイムアウトを待たないと他のSPが利用できない)
  • 実は、FPSPに設定されたサイトにアクセスしてIdPを選択すると、そこでログインしなくても他のSPにログインできなくなる

仕様上の問題といえる点としては、

  • SPが要求しない属性でフィルタできないため、先程述べたような、SPが必要な属性を要求せずに認めてしまっているサイトへの移動をフィルタできない

が挙げられます。

続きを読む