ヒント |
---|
Shibboleth SPのアップデートに関してはこちらをご覧ください。⇒SPv3アップデートに関する情報 |
注意 |
---|
Shibboleth IdPバージョン4がすでにリリースされております。V4へのアップデートに関してはこちらをご覧ください。⇒IdPv4アップデートに関する情報 |
目次 |
---|
バージョン共通
1. アップデート前の注意点
$CATALINA_BASE/conf/Catalina/localhost/idp.xml
にunpackWAR="false"
が含まれると構成が大きく変更されるアップデート時(自動デプロイ時)にエラーが発生する場合があるようです。当該ファイルを確認し指定があれば削除しておいてください。(技術ガイドに沿った構築では含まれません)
...
IdP 3.4.x から IdP 3.4.x へのアップデートに関する情報
3.4.6でのコード変更により一部の特殊なIdPプラグインを使っている場合にエラーが発生するという報告が上がっていますのでご注意ください。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
...
Shibboleth IdPバージョン4では3系で非推奨とされている記法のいくつかが削除され、そのままの設定ファイルでは動かない可能性があります。ただし、v2→v3のときのようにファイル構成自体が変更されることは予定されていません。また、新機能を除いてv4で許容される記法は3.4系の最新版でも有効であることが保証されます。つまり、3.4を動かしている間に将来v4で問題にならないように設定ファイルを変更しておくことが推奨されています。
...
詳細を別ページにまとめました。
⇒
...
attribute-resolver.xmlにおける<Dependency>要素は内容によって<InputAttributeDefinition>もしくは<InputDataConnector>に変更が必要です
...
その他のものも含め問題のある記述はv3.4ではDEPRECATEDのwarningとしてログに出力されます。詳細は開発元のドキュメント参照。
⇒DeprecatedIdPV4
変更の必要のある要素の置き換え方法へのリンクを含めて記載されています
...
v4.0への準備としてDEPRECATEDのwarningが出なくなるまで設定ファイルを修正することが推奨されます
3.4系でも細かい改善が続けられていますので、3.4系の最新のものをしてください
静的に解析しているものと動的に解析しているものがあり、3.4系の最新版でしばらく動かしてみることが必要です
その他の情報
3.4およびOracle JDK / OpenJDK 11を使っており、LDAPサーバへの接続にLDAPSを使っている場合、以下のエラーになるという情報があります。
原因はJDKのバグであるとのことです。該当する場合、以下でUnboundIDを使う回避策が提示されています。書式設定済み java.lang.NullPointerException: Thread local SslConfig has not been set
https://wiki.shibboleth.net/confluence/display/IDP30/LDAPonJava>8Thread local SslConfig has not been set
原因はJDKのバグであるとのことです。該当する場合、以下でUnboundIDを使う回避策が提示されています。
https://wiki.shibboleth.net/confluence/display/IDP30/LDAPonJava>8
詳細: https://issues.shibboleth.net/jira/browse/IDP-1357OpenJDK 8u272固有の問題(ただしOracle JDKについては不明)で、LDAPサーバへの接続にTLS(つまりStartTLSとLDAPS両方)を使っている場合に以下のエラーが発生するという問題が報告されております。原因はJDKのバグでありこれを含めた修正版の8u275がリリースされておりますのでそちらをお使いください。
8u272を使う必要性がある場合は、上述のUnboundIDを使う回避策をご検討ください。書式設定済み org.ldaptive.provider.ConnectionException: javax.net.ssl.SSLPeerUnverifiedException: hostname of the server '' does not match the hostname in the server's certificate.
詳細:https://issuesmarc.shibboleth.net/jira/browse/IDP-1357info/?l=shibboleth-users&m=160430766512138&w=2
IdP 3.3.x から IdP 3.4.x へアップデートする場合の注意点
3.4.0以降Shibboleth IdPのディレクトリ構成が
webapp/
からdist/webapp/
に変更になりました。以前のバージョンから該当するバージョンへアップデートする場合は、$CATALINA_BASE/lib/
等に当該ディレクトリへのシンボリックリンクがないか確認し、もしあれば修正しておいてください。3.4.0以降ではserver.keyのパーミッションへの特殊な扱いが不要になりました。3.3.xおよびそれ以前から3.4.xおよびそれ以降へのアップデートの場合は、以下を実行してください。xおよびそれ以降へのアップデートの場合は、技術ガイドにおける設定と一致するように、以下を実行してください。
パネル # chown root:tomcat /opt/shibboleth-idp/credentials/server.key
# chmod 640 /opt/shibboleth-idp/credentials/server.key
- 3.4.0へのアップデートで、idp.sealer.storePasswordもしくはidp.sealer.keyPasswordにシングルクオートを含む場合、アップデート後の起動に失敗するという情報があります。該当する場合は3.4.0を避け3.4.1およびそれ以降にアップデートしてください。
attribute-resolver.xmlにおいて厳密な記述が不可能だった<Dependency>要素は非推奨となり、代わりに<InputAttributeDefinition>要素および<InputDataConnector>要素が導入されました。
3.4.0よりcommons-dbcp2-2.x.x.jarが同梱されるようになっています。つまりTomcatのバージョン等によらずMySQL等のデータソースの指定に以下のclassが指定できます。
コード ブロック class="org.apache.commons.dbcp2.BasicDataSource"
- 以前同梱されていたconf/mvc-beans.xmlは同梱されなくなりました。特に修正していなければ削除しても大丈夫です。
...
3.3.xにて(3.2.xでも同様かは不明)、かつTomcat 8.0.xを使用している一部の環境の場合、IE / EdgeでSLOした後再度認証しようとするとエラーになるという問題があります。同様の問題で困っているかたはidp.xmlの記述を最新版にしてください。
詳細その1: https://issues.shibboleth.net/jira/browse/IDP-1141
詳細その2: 貴学にてIdPv3をインストールする場合の構築手順 の「5. idp.war の登録」の<CookieProcessor alwaysAddExpires="true" />
の行
...
3.3.xに限りませんが、
/opt/shibboleth-idp/webapp/
がまだ存在するバージョン(3.3.xおよびそれ以前)の場合、サードパーティ製のJARファイルのアップデートのみを行う場合に注意が必要です。
例えば tiqrshibauthn-2.0.jar から tiqrshibauthn-2.1.jar に更新する場合、古いファイルを削除する書式設定済み rm /opt/shibboleth-idp/edit-webapp/WEB-INF/lib/tiqrshibauthn-2.0.jar
とともに webapp/ 配下の同名ファイルを削除しておいてください。
書式設定済み rm /opt/shibboleth-idp/webapp/WEB-INF/lib/tiqrshibauthn-2.0.jar
- 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 - 2.xからのアップグレードの項に追記した通り、NameIDの送出方法が大幅に変更されており、Transient ID送出に関する従来の記述は不要になっております。当該記述は削除することをお勧めします。
...
IdP 2.x.x から IdP 3.x.x へアップグレードする場合の手順および関連情報
- シボレス実習活用編旧メニュー
- NIIオープンフォーラム2016の「IdP ver.3に向けたNIIの取り組み」および「Shibboleth IdP ver.3との戦い」
- GakuNinShare:Shibboleth IdP 3
- 貴学にてIdPv3をインストールする場合の構築手順貴学にてIdPv4をインストールする場合の構築手順
- 上記資料で網羅されておりませんが、スクリプトやQueryTemplateで
$requestContext
を使っている場合、メソッド等が存在しない場合があるという情報があります。以下を参考に修正してください。
⇒ScriptedAttributeDefinitionの"V2 Compatibility"の項, QueryTemplate NameIDにTransient IDを入れて送る方法、および他のIDを入れて送る方法が大幅に変更になっており、従来の方法は使えません。紛らわしさをなくすため、attribute-resolver.xmlおよびattribute-filter.xmlにおける従来の設定(IdPv3では意味を持ちません)を削除しておくことをお勧めします。
展開 title 無効なTransient ID送出設定の例 以下の記述があれば、丸ごと削除可能です。ただし少しでも変更があれば意図しない挙動の変化を生じる可能性がありますので、一字一句差異がないことを確認してください。
attribute-resolver.xml:
コード ブロック language xml <!-- Name Identifier related attributes --> <resolver:AttributeDefinition id="transientId" xsi:type="TransientId" xmlns="urn:mace:shibboleth:2.0:resolver:ad"> <resolver:AttributeEncoder xsi:type="SAML1StringNameIdentifier" xmlns="urn:mace:shibboleth:2.0:attribute:encoder" nameFormat="urn:mace:shibboleth:1.0:nameIdentifier" /> <resolver:AttributeEncoder xsi:type="SAML2StringNameID" xmlns="urn:mace:shibboleth:2.0:attribute:encoder" nameFormat="urn:oasis:names:tc:SAML:2.0:nameid-format:transient" /> </resolver:AttributeDefinition>
attribute-filter.xml:
コード ブロック language xml <!-- Release the transient ID to anyone --> <AttributeFilterPolicy id="PolicyforAnyone"> <PolicyRequirementRule xsi:type="basic:ANY" /> <AttributeRule attributeID="transientId"> <PermitValueRule xsi:type="basic:ANY" /> </AttributeRule> </AttributeFilterPolicy>