子ページ
  • SPv3アップデートに関する情報

比較バージョン

キー

  • この行は追加されました。
  • この行は削除されました。
  • 書式設定が変更されました。
ヒント
Shibboleth IdPのアップデートに関してはこちらをご覧ください。⇒IdPv3アップデートに関する情報
ヒント

SP 2.5.xおよびそれ以前からのアップデートに関する情報はこちらもご覧ください。⇒xおよびそれ以前からアップデートする場合はこちらの情報もご覧ください。⇒SPバージョン2アップデートに関する情報


目次
maxLevel4

...

2.4に移行するとrequireの条件を満たさない場合に表示されるエラーページが"403 Forbidden"から"401 Unauthorized"に変更されます。これに伴いshibboleth2.xmlの<Errors>要素に記述されたaccess=属性(エラーページのカスタマイズ)が有効になりません。Apacheのxmlの<Errors>要素に記述されたaccess属性(エラーページのカスタマイズ)が有効になりません。ApacheのErrorDocumentで代替してください。

なお、Apache httpd 2.4上でSPを構築した場合、なんらかの条件のもとで、シボレス認証が必要な場面で"401 Unauthorized"というエラーが発生するという情報があります。この場合は以下の方法を試してみてください(CentOS 7での手順です)。
/etc/httpd/conf.modules.d/00-shib.conf のようなファイル名で以下の内容で新規ファイルを作成し、/etc/httpd/conf.d/shib.conf の該当行を削除してください。終わりましたらhttpdを再起動してください。

...

3.0.0には起動に失敗するものを含むバグが存在します。3.0.1以降にアップデートしてください。アップデート後、shibboleth2.xml veryifyBackup= という文字列が含まれる場合は誤字ですので verifyBackup= に修正してください。

3.0.1にはWindows版v3の新機能である1およびそれ以前にはWindows版v3の新機能である.NETハンドラがうまく動かない場合があります。また<SSO>要素のsigning指定が反映されません。3NETハンドラがうまく動かない問題と、<SSO>要素のsigning指定が反映されないという問題があります。3.0.2をお待ちください。2以降に更新してください。

SP 2.6.x から SP 3.0.x へアップデートする場合の注意点

1. 事前準備

shibboleth2.xmlに accessError.html および syslog.logger への参照がないことを確認してください。参照している場合は、ファイルが編集されている(.distを付加したファイルと同一でない)ことを確認してください。
参照されておりかつ編集されていない場合、アップデートで当該ファイルが削除され問題が発生する可能性があります。編集された状態のものは削除されませんので、コメントを挿入するなどして対処してください。

2. SPアップデート後の作業

不要なパッケージの削除

libsaml, libxmltooling, libxml-security-c, liblog4shibが合わせてバージョンアップしパッケージ名が変更になっています。また、CentOS 7ではBaseリポジトリのxerces-cパッケージを使用していたものが独自のlibxerces-c-3_2パッケージを使用するようになっています。古いバージョンは削除されないようなので、他で使っていなければ削除してしまいましょう。

...

shibboleth2.xmlの新形式への移行

shibboleth2.xmlがv2とv3で唯一異なる形式を持つファイルです。SP xmlがv2とv3で唯一異なる形式を持つファイルです(次に示すsecurity-policy.xmlを除いて)。SP v3でも旧形式のファイルを読み込むことは可能ですがいずれサポートされなくなりますので新形式に移行する手順をご紹介します。

ヒント

紛らわしいですがファイル名はv3でも shibboleth2.xml のままです。

注意

新形式(3.0フォーマット)でデフォルト値が変更になった部分があり、該当機能を使っている場合は移行する際には注意が必要です。これまで判明しているところでは、<SessionCache>cacheAssertions="false"がデフォルトになったことによりtrueを明示していない場合はWebアプリケーションがアサーションを直接取得することができなくなります。従来の値を指定するようにshibboleth2.xmlを修正してください。
詳細は開発元のReleaseNotesを参照してください。

まず、アップデート後起動するとDEPRECATEDと表示されているログが見られると思います。これは新形式で許容されない記述の指摘ですので、DEPRECATEDが表示されなくなるまで修正を繰り返します。典型的には

...

パネル

<SPConfig xmlns="urn:mace:shibboleth:3.0:native:sp:config"
    xmlns:conf="urn:mace:shibboleth:3.0:native:sp:config"

security-policy.xmlが新形式へ移行していることの確認

これもv2からv3で形式が変わったファイルですが、ほとんどの場合編集の必要がないため自動的に新形式に移行されているはずです。security-policy.xmlとsecurity-policy.xml.distを比較して差分がないことを確認してください。差分がある場合は必要な変更をマージしファイル先頭の名前空間指定を2.0から3.0に修正してください。

パネル

$ diff /etc/shibboleth/security-policy.xml{.dist,}

transaction.log新フォーマットへの移行

これは必須ではありませんが、SP 3から/var/log/shibboleth/transaction.logに新フォーマットが導入され従来より見やすくなっております。アップデートした場合には自動的に移行はされませんので、以下の手順で移行してください。

展開
title新旧transaction.logの比較

1アクセスが1行で表されるようになり、各行のプレフィックス含め機械的に読みやすいように改善されています。

旧フォーマット:

パネル

2017-02-20 11:13:29 INFO Shibboleth-TRANSACTION [1]: New session (ID: _6f1...) with (applicationId: default) for principal from (IdP: https://idp.example.ac.jp/idp/shibboleth) at (ClientAddress: xxx.xxx.xxx.xxx) with (NameIdentifier: AAdz...vQ==) using (Protocol: urn:oasis:names:tc:SAML:2.0:protocol) from (AssertionID: _b2a...)
2017-02-20 11:13:29 INFO Shibboleth-TRANSACTION [1]: Cached the following attributes with session (ID: _6f1...) for (applicationId: default) {
2017-02-20 11:13:29 INFO Shibboleth-TRANSACTION [1]:    eppn (1 values)
2017-02-20 11:13:29 INFO Shibboleth-TRANSACTION [1]: }

新フォーマット(最後から2番目の項はUser Agent、最後の項はクライアントIPアドレスです):

パネル

2018-08-03 15:08:07|Shibboleth-TRANSACTION.AuthnRequest|||https://idp.example.ac.jp/idp/shibboleth||||||urn:oasis:names:tc:SAML:2.0:bindings:HTTP-Redirect|||||| 2018-08-03 15:08:17|Shibboleth-TRANSACTION.Login|uid@example.ac.jp|_1d7...|https://idp.example.ac.jp/idp/shibboleth|_19f...|urn:oasis:names:tc:SAML:2.0:ac:classes:PasswordProtectedTransport|2018-08-03T15:08:14|eppn(1)|AAdz...cA==|urn:oasis:names:tc:SAML:2.0:bindings:HTTP-POST||urn:oasis:names:tc:SAML:2.0:status:Success|||Mozilla/5.0 ...|xxx.xxx.xxx.xxx

shibboleth2.xmlの先頭(<SPConfig>の最初の子要素として。ただしその位置に<Extensions>がある場合はその下)に以下を追加するか、すでに<OutOfProcess>要素が存在する場合にはその属性としてtranLogFormat=の部分を追加してください。

コード ブロック
languagexml
    <OutOfProcess tranLogFormat="%u|%s|%IDP|%i|%ac|%t|%attr|%n|%b|%E|%S|%SS|%L|%UA|%a" />

次に、shibd.loggerがshibd.logger.distと差分がある場合には、必要な変更をマージしてください。2.6.1と3.0.2の差分は以下の通りです。

展開
コード ブロック
languagediff
--- 2.6.1/shibd.logger.dist    2017-11-15 09:40:50.000000000 +0900
+++ 3.0.2/shibd.logger.dist    2018-08-03 09:41:41.000000000 +0900
@@ -29,11 +29,14 @@
 # logs XML being signed or verified if set to DEBUG
 log4j.category.XMLTooling.Signature.Debugger=INFO, sig_log
 log4j.additivity.XMLTooling.Signature.Debugger=false
+log4j.ownAppenders.XMLTooling.Signature.Debugger=true
 
 # the tran log blocks the "default" appender(s) at runtime
 # Level should be left at INFO for this category
 log4j.category.Shibboleth-TRANSACTION=INFO, tran_log
 log4j.additivity.Shibboleth-TRANSACTION=false
+log4j.ownAppenders.Shibboleth-TRANSACTION=true
+
 # uncomment to suppress particular event types
 #log4j.category.Shibboleth-TRANSACTION.AuthnRequest=WARN
 #log4j.category.Shibboleth-TRANSACTION.Login=WARN
@@ -61,7 +64,7 @@
 log4j.appender.tran_log.maxFileSize=1000000
 log4j.appender.tran_log.maxBackupIndex=20
 log4j.appender.tran_log.layout=org.apache.log4j.PatternLayout
-log4j.appender.tran_log.layout.ConversionPattern=%d{%Y-%m-%d %H:%M:%S} %p %c %x: %m%n
+log4j.appender.tran_log.layout.ConversionPattern=%d{%Y-%m-%d %H:%M:%S}|%c|%m%n
 
 log4j.appender.sig_log=org.apache.log4j.FileAppender
 log4j.appender.sig_log.fileName=/var/log/shibboleth/signature.log

3. SP 3.0からの新機能

(まとめ中)
Stateless Clustering
/Shibboleth.sso/Logout/Admin

...

レアケースですがSPが直接外部サーバへHTTPS接続する場合、配布されている設定ファイルでは(つまりv3で新規に構築すると)TLS 1.2以上を使うように強制されます。問題がある場合はshibboleth2.xmlのcipherSuitesの項を修正してください。

...

4. その他の情報

shibbolethリポジトリが冗長化され設定ファイルが変更になっております。古いものをお使いの場合は技術ガイドの手順に従って /etc/yum.repo.d/shibboleth.repo ファイルを更新してください。これに伴いパッケージの更新が必要になることはありません。

...