月別アーカイブ: 2014年7月

Shibboleth SPとしてTomcatを用いた場合の属性受け渡し

ShibbolethはApacheからの環境変数として属性を受け渡すため、多くの環境では非常に簡単にアプリケーションから属性を取得することができますが、Tomcatはその例外の一つです(Tomcatのアプリにすんなりと環境変数を渡す方法が無いため)。今回実験環境でテストしたので、そのメモを残しておきます。

システム構成

Tomcat単体ではShibbolethのSPとなることはできないため、Shibboleth SPをApacheで構築し、そこからAJP経由で接続するのがもっとも簡単なように思えます。

たとえばCentOSであれば、/etc/httpd/conf.d/proxy_ajp.confみたいな感じでファイルを作成し、その中でTomcatのアプリケーション(ここでは/myapp/とする)を、

のようにAJPで繋ぎます。そして/etc/httpd/conf.d/shib.confの最後辺りに、

みたいな感じで/myapp/をShibboleth認証します(実際の環境では、ログインに必要なロケーションのみをShibboleth認証するほうがおすすめだと思います)。CentOSにおけるSPの構築は、学認の技術ガイドに詳しく解説されています。FreeBSD上での構築はこのサイトの昔の記事にあります。

以上の環境を仮定して、TomcatにShibboleth属性を渡す設定について紹介します。IdP側の設定は通常のSPと同じなので省略します。渡す属性はeduPersonPrincipalName(以下ePPN)を仮定します。 続きを読む