月別アーカイブ: 2016年2月

学認IdPをShibboleth3にする際のメモ

Shibboleth 2.Xが2016年夏にEnd-of-Lifeを迎えるため、そろそろ各学認Shibboleth IdP管理者様の方でもShibboleth 3.Xへの移行作業をされていると思います。学認サイトもShibboleth 3.X系の情報が増えていますが、まだ2.Xの頃の情報の整理された充実ぶりには及ばないようで、アップデート作業はかなり難儀しました。そのため、現状の最新バージョンであるShibboleth 3.2.1にアップデートを行った際にはまった罠について簡単に紹介しておこうと思います。

なお、まだマイナーバージョンの違いで、一部の重要そうな機能の設定が異なったり、この機能は絶対に必要だ、というような機能が3.2.0や3.2.1になってから追加されていたりするので、色々悩ましいのですが、とりあえず3.2.1ではなんとか2.Xから我々が使っている概ねすべての機能を移行することができました。作業を3.2.0以前で始められている方は、今からでも3.2.1にターゲットを変更することを強くおすすめします。

なお、以下の記述はまずCentOS 6+OpenJDK 7+Tomcat 7で構築した後、もう一度CentOS 7+Oracle JDK 8+Tomcat 8の組み合わせで構築しなおした経験にもとづいています。双方の差は、Tomcatの違いに起因する、consent-interceptのバックエンドのMySQL接続設定(conf/global.xml)の部分のみでした(もちろん、OSのセットアップやJava, Tomcatのインストール手順などは大きく異なりますが、Shibboleth3の設定という観点からのみ考えると、差は大きくありません)。

それでは、はまった点を紹介していきます。

LDAP由来の属性がSPに送信されない

LDAPの設定ファイルconf/ldap.properties中のidp.attribute.resolver.LDAP.returnAttributesを適切に設定しないと、LDAP経由の属性がSPに送信されない(LDAPに要求する属性をコンマ区切りで並べる必要がある)。ちなみにデフォルトではこの値はcn,homephone,mailのみとなっている。

(2016/03/24 追記)学認MLでご指摘いただいたのですが、こちらの問題は学認技術ガイドが現在提供しているattribute-resolver-template.xmlを利用した場合は生じないようです。

情報提供ありがとうございました。

属性送信許可がデフォルトで有効

Shibboleth3.Xでは、かつてのuApprove.jpプラグイン相当のconsent-intercept機能がShibboleth本体に搭載され、さらにデフォルトで有効化されているため、もしこの機能を利用しない場合は、conf/relying-party.xmlに次の設定が必要である(もちろん学認の場合はこの機能を利用するほうがおすすめ設定である)。

続きを読む