IdPv3アップデートに関する情報

IdPv3アップデートに関する情報

Shibboleth IdPバージョン5がすでにリリースされております。V5へのアップデートに関してはこちらの両ページをご覧ください。⇒IdPv4アップデートに関する情報, IdPv5アップデートに関する情報

Shibboleth SPのアップデートに関してはこちらをご覧ください。⇒SPv3アップデートに関する情報

バージョン共通

1. アップデート前の注意点

  1. $CATALINA_BASE/conf/Catalina/localhost/idp.xml に unpackWAR="false" が含まれると構成が大きく変更されるアップデート時(自動デプロイ時)にエラーが発生する場合があるようです。当該ファイルを確認し指定があれば削除しておいてください。(技術ガイドに沿った構築では含まれません)

2. アップデート手順

shibboleth-identity-provider-3.x.x.tar.gzパッケージを展開したディレクトリで、以下のコマンドで設定ファイルの変更点を確認し、適宜反映した上で、アップデートを実行します。

/opt/shibboleth-idp/以下に存在しないファイル/ディレクトリはアップデート時に自動的に作成されますが、インストール後修正したファイルのほか、修正していないファイルも一切上書きはされませんので、新バージョンの内容を適宜反映してください。各自で修正していないファイルはdist/以下のファイルで上書きする、各自で修正したファイルは新バージョンでの変更点をマージする形になります。

反映しない場合、旧来の機能は変わらず動作することが保証されますが、新バージョン以降の新機能が(デフォルトで有効な場合と有効化した場合いずれも)正しく動作することが保証されません。このため、将来的な新機能利用も見据えて、アップデート後でもかまいませんのでなるべく早く反映するようにしてください。

uApproveJPをインストールしている場合はsystem/以下の修正が元に戻ってしまうので、アップデート前に展開したディレクトリの当該ファイルを修正した上でアップデートを行うのがお勧めです。system/以下の修正箇所をパッチ形式にしたものを置いておきますので、展開したディレクトリにて適用してください。

$ patch -p0 < .../uapprovejp3-system.patch

3.3.xおよびそれ以前から3.4.xへのアップデートの場合はディレクトリ構造が変わっておりますので、展開したインストールパッケージ同士を比較して設定ファイルの変更点を確認してください。例:

なお、3.3.xへのアップデートの場合は以下のようにdistディレクトリ同士を比較していました。(dist/以下のファイルにはファイル名の末尾に .dist が付いていました)

# diff -rb -x LICENSE.txt -x bin -x credentials -x doc -x idp_ant\\.log -x logs -x metadata -x system /opt/shibboleth-idp/dist/ .
(配布物として旧バージョンからの変更点の確認)
# bin/install.sh -Didp.conf.filemode=640 -Didp.conf.credentials.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

本アップデート手順はTomcatを起動したまま行うことを前提としております。もしTomcatが起動していない状態の場合は、古いバージョンのキャッシュを削除するため以下のコマンドを実行してください。

なお、Tomcat 8.0.21およびそれ以降を使っており、autoDeploy="true"およびdeployOnStartup="true"の設定になっている場合は、上記操作の必要なく、起動したままでも停止した状態でも、自動デプロイが機能するはずです。

アップデート後、以下のコマンドでバージョンが更新されていることを確認してください。

$ /opt/shibboleth-idp/bin/status.sh | grep idp_version
idp_version: 3.3.1

アップデート直後は古いバージョンを示すことがあるので、その場合はしばらくしてから再度確認してください。

 

3. アップデート後の注意点

  1. /opt/shibboleth-idp/の下にold-2016MMDD-XXXX/というようなディレクトリが作成されるようですが、運用には不要です。

    # ls /opt/shibboleth-idp/old-20160509-0810/ bin/ dist/ doc/ system/ webapp/
  2. $CATALINA_BASE/lib/等に/opt/shibboleth-idp/webapp/WEB-INF/lib/以下もしくは/opt/shibboleth-idp/dist/webapp/WEB-INF/lib/以下のJARファイルへのシンボリックリンクがある場合は、アップデート後にバージョンが変わりファイル名が変更になっている可能性があるのでその場合はシンボリックリンクを変更し、Tomcatを再起動すること。

  3. 次節以降で取り上げたバージョン間の変更点以外にも、細かな変更が存在する場合があります。変更点はShibboleth WikiのReleaseNotesに網羅されていますのでご参照ください。
    https://wiki.shibboleth.net/confluence/display/IDP30/ReleaseNotes

IdP 3.4.x から IdP 3.4.x へのアップデートに関する情報

3.4.6でのコード変更により一部の特殊なIdPプラグインを使っている場合にエラーが発生するという報告が上がっていますのでご注意ください。またそのようなプラグインがありましたら学認事務局まで情報提供いただけましたら幸いです。
詳細: https://wiki.shibboleth.net/confluence/display/IDP30/ReleaseNotes#ReleaseNotes-3.4.6(Oct2,2019)
参考: https://marc.info/?l=shibboleth-users&m=157019539119083&w=2

3.4.2に限らないと思われますが、Mapped AttributeDefinitionにて空文字列になる属性値を生成した場合、エラーになるという情報があります。このような使い方は想定されておりませんのでご注意ください。
詳細: https://issues.shibboleth.net/jira/browse/IDP-1389

3.4.2固有の問題で、Template AttributeDefinitionにてDependencyを用いた古い記法を使っている場合にエラーになります。記述をInputAttributeDefinitionおよびInputDataConnectorを用いた新しい記法に改めるか、3.4.3もしくはそれ以降にアップデートしてください。
詳細: https://issues.shibboleth.net/jira/browse/IDP-1386

3.4.2にて以下のDEPRECATED warningを出力するようになりましたが、実際には<SourceAttribute>を使用していなくても出力されることがあります。<SourceAttribute>を使用していない場合は無視してください。

08:38:46.114 - - WARN [DEPRECATED:118] - XML Element 'SourceAttribute', (file [/opt/shibboleth-idp/conf/attribute-resolver.xml]): This will be removed in the next major version of this software; replacement is by using <InputAttributeDefinition> and <InputDataConnector>

詳細: https://issues.shibboleth.net/jira/browse/IDP-1383

3.4.1までで認証後に下記エラーが出るときがあるとの報告があります。該当する場合は3.4.2もしくはそれ以降にアップデートしてください。

org.springframework.binding.expression.EvaluationException: An ELException occurred getting the value for expression 'authenticationContext.setAttemptedFlow(thisFlow)' on context [class org.springframework.webflow.engine.impl.RequestControlContextImpl]

詳細: https://issues.shibboleth.net/jira/browse/IDP-1163

attribute-resolver.xmlで記述する sourceAttributeID はDEPRECATEDでv4で削除予定ですが、3.4.1まではComputedIdおよびStoredId DataConnecterにおいて代替の記述をするとエラーで起動できなくなります。申し訳ありませんが該当するバージョンをお使いの場合は当該DataConnectorのみ古い記述をお使いください。
詳細: https://issues.shibboleth.net/jira/browse/IDP-1359

3.4.0で配布されている設定ファイルのうち conf/admin/general-admin.xml に誤字がありましたので、3.4.0の配布ファイルをご利用の場合は以下を参考に修正してください。

--- shibboleth-idp-3.4.0/dist/conf/admin/general-admin.xml 2018-10-15 02:46:42.799299813 +0900 +++ shibboleth-idp-3.4.1/dist/conf/admin/general-admin.xml 2018-11-02 13:22:41.215327718 +0900 @@ -39,7 +39,7 @@ <!-- Metadata Query --> <bean parent="shibboleth.AdminFlow" c:id="http://shibboleth.net/ns/profiles/mdquery" - p:loggingId="MetadataQuery}" + p:loggingId="MetadataQuery" p:policyName="AccessByIPAddress" /> <!-- REST AccountLockoutManager Access -->