Shibboleth SPのアップデートに関してはこちらをご覧ください。⇒SPv3アップデートに関する情報
バージョン共通
1. アップデート手順
shibboleth-identity-provider-3.x.x.tar.gz
パッケージを展開したディレクトリで、以下のコマンドで設定ファイルの変更点を確認し、適宜反映した上で、アップデートを実行します。
/opt/shibboleth-idp/
以下に存在しないファイル/ディレクトリはアップデート時に自動的に作成されますが、インストール後修正したファイルのほか、修正していないファイルも一切上書きはされませんので、新バージョンの内容を適宜反映してください。各自で修正していないファイルはdist/
以下のファイルをファイル名末尾の.dist
を省いたもので上書きする、各自で修正したファイルは新バージョンでの変更点をマージする形になります。
反映しない場合、旧来の機能は変わらず動作することが保証されますが、新バージョン以降の新機能が(デフォルトで有効な場合と有効化した場合いずれも)正しく動作することが保証されません。このため、将来的な新機能利用も見据えて、アップデート後でもかまいませんのでなるべく早く反映するようにしてください。
uApproveJPをインストールしている場合はsystem/
以下の修正が元に戻ってしまうので、アップデート前に展開したディレクトリの当該ファイルを修正した上でアップデートを行うのがお勧めです。system/
以下の修正箇所をパッチ形式にしたものを置いておきますので、展開したディレクトリにて適用してください。
uapprovejp3-system.patch
$ patch -p0 < .../uapprovejp3-system.patch
# diff -rb /opt/shibboleth-idp/dist/ dist/
(変更点の確認)
# bin/install.sh -Didp.conf.filemode=640
Source (Distribution) Directory (press <enter> to accept default: [/root/shibboleth-identity-provider-3.3.0]
[Enter]
←入力なしInstallation Directory: [/opt/shibboleth-idp]
←入力なし
[Enter]
Rebuilding /opt/shibboleth-idp/war/idp.war ......done
BUILD SUCCESSFUL
Total time: 5 seconds
#
最後に、アップデートプロセスにより変更されたserver.key
のパーミッションを元に戻します。
# chmod 400 /opt/shibboleth-idp/credentials/server.key
本アップデート手順はTomcatを起動したまま行うことを前提としております。もしTomcatが起動していない状態の場合は、古いバージョンのキャッシュを削除するため以下のコマンドを実行してください。
# rm -f $CATALINA_BASE/webapps/idp $CATALINA_BASE/work/Catalina/localhost/idp
アップデート後、以下のコマンドでバージョンが更新されていることを確認してください。
$
/opt/shibboleth-idp/bin/status.sh | grep idp_version
idp_version: 3.3.1
アップデート直後は古いバージョンを示すことがあるので、その場合はしばらくしてから再度確認してください。
2. アップデート後の注意点
/opt/shibboleth-idp/
の下にold-2016MMDD-XXXX/
というようなディレクトリが作成されるようですが、運用には不要です。# ls /opt/shibboleth-idp/old-20160509-0810/ bin/ dist/ doc/ system/ webapp/
$CATALINA_BASE/lib/
等に/opt/shibboleth-idp/webapp/WEB-INF/lib/
以下のJARファイルへのシンボリックリンクがある場合は、アップデート後にバージョンが変わっている可能性があるのでシンボリックリンクを変更し、Tomcatを再起動すること。- 次節以降で取り上げたバージョン間の変更点以外にも、細かな変更が存在する場合があります。変更点はShibboleth WikiのReleaseNotesに網羅されていますのでご参照ください。
⇒https://wiki.shibboleth.net/confluence/display/IDP30/ReleaseNotes
IdP 3.3.x から IdP 3.3.x へのアップデートに関する情報
3.3.0にて(3.2.xでも同様かは不明)、かつTomcat 8もしくはそれ以降を使用している場合、IE / EdgeでSLOした後再度認証しようとするとエラーになるという問題があり、3.3.1で解決されています。同様の問題で困っているかたは3.3.1以降にアップデートするか、idp.xmlの記述を最新版にしてください。
詳細その1: https://issues.shibboleth.net/jira/browse/IDP-1141
詳細その2: 貴学にてIdPv3をインストールする場合の構築手順 の「5. idp.war の登録」の<CookieProcessor alwaysAddExpires="true" />
の行
3.3.1にて、relying-party.xmlのp:defaultAuthenticationMethodsで従来使えていた記法が使えなくなったとの情報があります。SAML2SSOConfigurationの下方の例(Examples of defaultAuthenticationMethods property)等を参照して記述を修正してください。
3.3.1へのアップデートで system/messages/
に配置した日本語リソースが削除されるとの情報があります。お手数ですが messages/
に再度配置してください。
詳細: GakuNinShare:Shibboleth IdP 3 - メッセージの多言語化
詳細: Shibboleth Wiki:MessagesTranslation のコメント欄
3.3.2にてIDP-1207への対処のため views/login.vm
に変更が入っております。dist/views/login.vm.dist
と比較して必要な修正を取り込んでください。
配布物での差分は以下の通りで、「ログインを記憶しません。」チェックボックスが特定の条件下(forceAuthn時)に指定通りにならないため当該条件の下では表示しないようにするものです。コメントにある通り多要素認証等を使っている場合は適宜修正してください。
その他の情報
- 3.3.xに限りませんが、Java 7からJava 8へ移行する場合は以下の情報を参照してください。
⇒貴学にてIdPv3をインストールする場合の構築手順の動作要件の「Java 7 or 8」の項 - 3.3.xに限りませんが、Tomcatの起動に10分前後時間がかかり、それが問題になるような場合は以下の情報を参照してください。
⇒貴学にてIdPv3をインストールする場合の構築手順の動作要件の「Java 7 or 8」の項 - 2.xからのアップグレードの項に追記した通りスクリプトやQueryTemplateでの
$requestContext
の使用が制限されておりますが、V4では$requestContext
自体がなくなる見込みです。代替手段をご検討ください。
⇒ScriptedAttributeDefinitionの"V2 Compatibility"の項, QueryTemplate
IdP 3.2.x から IdP 3.3.x へアップデートする場合の注意点
3.2.1およびそれ以前で発見されていた<ResultCache>
要素の脆弱性が修正されましたので、LDAP result caching機能が必要な方は再度有効化してください。
2016-11-21 [upki-fed:01087] 【補足情報】【注意喚起】Shibboleth IdPの脆弱性について
また、上記メールに記載がありますが、3.2.1およびそれ以前で以下のログが記録されしばらくすると認証処理がストップする(通信環境が不安定な場合にロックする)という問題にも対処が入っておりますので、この問題に遭遇されていた方は今一度ご確認ください。
2016-09-13T08:37:30.402+01:00 - WARN [org.ldaptive.AbstractOperation$ReopenOperationExceptionHandler:277] - Operation exception encountered, reopening connection
以下で指摘されていたSLOのエラーについては、3.3.0で解消されています。詳細についてはFull SLO(Single Logout)の設定方法の末尾の注意事項をご覧ください。
2016-01-15 [upki-fed:01005] Re: Shibboleth 3.2 Logout時エラーについて
メッセージファイルのファイル構成が変更されています。旧構成でも新機能を使わない限り運用可能ですが、新構成に切り替えるにはservices.xml
のshibboleth.MessageSourceResources
を/opt/shibboleth-idp/dist/conf/services.xml.dist
を参考に更新してください。その際、idp.logo
など従来の3ファイルに加えていた変更を/opt/shibboleth-idp/messages/messages.properties
に追記して変更を維持してください。
3.3.0以降向けの日本語メッセージファイルも Shibboleth IdP 3 - メッセージの多言語化 のリンク先から提供されています。/opt/shibboleth-idp/messages/
以下に配置して利用してください。すでに同名のファイルが存在する場合はマージしてください。が、3.3.0以降での手順では/opt/shibboleth-idp/system/messages/
以下に配置するようになっています。
3.2でのattribute-filter.xml
に続き、3.3ではattribute-resolver.xml
で名前空間のフラット化(resolver:
やdc:
等の除去)が行われております。ただし従来の記法も使えますので、アップデートに際して書き換えなくても大丈夫です。
フラット化に関して言うと、以下の手順でお手持ちのattribute-resolver.xmlをフラット化することができます。
xsi:type="ad:Script"
およびxsi:type="dc:Script"
が同名になるのを避けるため、それぞれxsi:type="ScriptedAttribute"
およびxsi:type="ScriptedDataConnector"
に書き換えてください。- 名前空間
resolver:
ad:
dc:
enc:
を削除してください。(sec:
およびpc:
を機械的に削除してはいけません。以降の手順で結果的になくなるはずです。また、xsi:
は残してください。) <PrincipalConnector>
要素は、要素自体を削除してください。- xsi:type="Transient"のものは他にやるべきことはありませんが、他のタイプの
<PrincipalConnector>
要素については代替手段を検討してください。
- xsi:type="Transient"のものは他にやるべきことはありませんが、他のタイプの
<StartTLSTrustCredential>
要素はtrustFile="..."
で置き換えてください。- まだ
sec:
もしくはpc:
が残っている場合は代替手段を検討してください。 - ファイル先頭以外で xmlns="..." が現れる場合はそれも削除してください。また、全ての
xmlns:resolver="..."
,xmlns:ad="..."
,xmlns:dc="..."
,xmlns:enc="..."
,xmlns:sec="..."
,xmlns:pc="..."
を削除してください。
3.3.0にて認証処理時のリグレッションが発生しています。詳細はReleaseNotesに記載されていますので"IDP-1101"で検索してください。
以前のバージョンにて/idp/statusにアクセスすると以下のような不要なERRORログが記録される問題に対処が入っております。ただし以前のバージョンの conf/logback.xml
を引き続き使っている場合は修正されませんので、dist/conf/logback.xml.dist
を参考に修正してください。
2016-06-27 12:34:56,760 - ERROR [org.apache.velocity:96] - ResourceManager : unable to find resource 'status.vm' in any resource loader.
2016年11月21日以前の技術ガイドに沿って構築した場合、設定ファイルのパーミッションに問題がありアップデート後に正常に起動しない可能性があります。以下にならってパーミッションを修正した上でアップデートを適用してください。
# find /opt/shibboleth-idp/conf -type d -exec chmod g+s {} \; # chown tomcat:root /opt/shibboleth-idp/credentials/server.key # chmod 400 /opt/shibboleth-idp/credentials/server.key
1行目の修正点は、アップデート時に新規ファイル/ディレクトリが作成される場合も適切なowner/groupを維持するためのものです。
2,3行目は、server.key
(に限らずcredentials/
以下の.keyで終わるファイル)はアップデートプロセスによりrw-------
に強制されるので、ownerがrootでかつTomcatをtomcatユーザで起動していると動作しなくなることに対する対処です。
その他の情報
Tomcatの脆弱性およびそれに関連してyumパッケージのパーミッション修正が不完全な件が流れています。
2016-11-21 [upki-fed:01086] 【補足情報】【注意喚起】Tomcatの脆弱性修正版リリースについて(2016/11/1)
IdP 3.2.x から IdP 3.2.x へのアップデートに関する情報
JVMヒープサイズの推奨値が1.5GB(-Xmx1500m
)に上方修正されておりますので、適宜自動起動スクリプトを更新してください。
2016-05-16 [upki-fed:01048] Re: Shibboleth IdP実行環境におけるJVMのヒープサイズについて
古いJavaを使っているとメタデータ取得に失敗するという情報がありました。
2015-08-21 [upki-fed:00954] 最新のJava(Oracle JDK/OpenJDK)を使った場合のメタデータ取得エラー
3.2.xで特定の条件で認証応答に署名がないという問題に遭遇した場合は3.3.0以降にアップデートしてください。詳細はReleaseNotesに記載されていますので"IDP-920"で検索してください。
その他の情報
四半期に一度のペースでJava(OpenJDKおよびOracle JDK)のセキュリティアップデートがリリースされています。
2016-05-16 [upki-fed:01049] Re: 【注意喚起】OpenJDKおよびOracle Javaの脆弱性について(2016/4/22)
今回の内容としては、JMXポートの脆弱性、毎回恒例の暗号系の改善(GCM, DSA)、MD5withRSAの拒否、(今回のものではありませんが)OpenJDK 7のECC対応、など。
IdP 3.1.x から IdP 3.2.x へアップデートする場合の注意点
以下のページを参照のこと。
⇒https://www.switch.ch/aai/guides/idp/installation/#keepinguptodate
IdP 2.x.x から IdP 3.x.x へアップグレードする場合の手順および関連情報
- シボレス実習活用編旧メニュー
- NIIオープンフォーラム2016の「IdP ver.3に向けたNIIの取り組み」および「Shibboleth IdP ver.3との戦い」
- GakuNinShare:Shibboleth IdP 3
- 貴学にてIdPv3をインストールする場合の構築手順
- 上記資料で網羅されておりませんが、スクリプトやQueryTemplateで
$requestContext
を使っている場合、メソッド等が存在しない場合があるという情報があります。以下を参考に修正してください。
⇒ScriptedAttributeDefinitionの"V2 Compatibility"の項, QueryTemplate