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

比較バージョン

キー

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

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


目次
maxLevel4

バージョン共通

CentOS等、yumコマンドによりインストールした環境では以下のコマンドで簡単に最新版にアップデートできます。

...

コード ブロック
$ sudo yum update shibboleth libsaml9libsaml10 libxmltooling7libxmltooling8 libxml-security-c17c20 liblog4shib1liblog4shib2 opensaml-schemas xmltooling-schemas libxerces-c-3_12 libcurl-openssl xerces-c
(OSによっては libcurl-openssl パッケージや libxerces-c-3_1 パッケージが存在しない場合がありますが、無視されますので問題ありません)

アップデート後、httpdおよびshibdが再起動されていることを確認し、再起動されていなければ手動で再起動してください。

コード ブロック
$ sudo /sbin/service systemctl restart shibd restart
$ sudo /sbin/servicesystemctl restart httpd restart
情報

CentOS 7の場合コマンドが異なります。自動再起動されていない場合は以下のコマンドを用いてください。6の場合コマンドが異なります。自動再起動されていない場合は以下のコマンドを用いてください。

コード ブロック
$ sudo /sbin/service systemctlshibd restart shibd
$ sudo systemctl/sbin/service httpd restart httpd

※ 例えば、2.6.0から21から3.60.1へのアップデートは自動的に再起動する模様。21へのアップデートは自動的に再起動する模様。3.6.1にアップデート後、libxmltooling7のみをアップデートした場合は自動再起動されない模様。2.5.1から2.5.2へのアップデートはhttpdおよびshibdを自動的に再起動する模様。2.4.3から2.5.2へのアップデートでは自動再起動されない模様。0.1にアップデート後、libxmltooling8のみをアップデートした場合は自動再起動されない模様。

注意点

RPMパッケージのミラーリングがおかしい場合はこちらをご参照ください。
2016-11-30 [upki-fed:01103] 【続報】Shibboleth SPパッケージ配布リポジトリの不具合について

デフォルトでは有効になっていない、オープンリダイレクタとならないための設定があります。特に事情がなければ以下の指示に従って設定を有効にしてください。2.5.0以降の機能ですが、デフォルトでは有効になっていない、オープンリダイレクタとならないための設定があります。特に事情がなければ以下の指示に従って設定を有効にしてください。
オープンリダイレクタとなりうる問題の対処

Shibbolethプロダクトに関する次節以降記載以外のセキュリティフィックスおよび脆弱性情報は以下のページにてご覧いただけます。
⇒ Shibboleth Wiki: SecurityAdvisories

Apache httpd 2.4へ移行する場合の注意点

Apache httpd 2.2およびそれ以前からApache httpd 2.4へ移行する場合、設定ファイルの ShibCompatWith24 の行はコメントアウトもしくは削除してください。
2016-12-08 [upki-fed:01115] Re: Proxy配下でのSP構築に関して
また、require valid-user など、許容される構文もしくはその意味が変わっておりますので、昔の設定を引き継いで使っている方はご注意ください。
⇒ Shibboleth Wiki: Apache Compatibility Changes, NativeSPApacheConfig, NativeSPhtaccess

...

2016-12-09 [upki-fed:01121] Re: Proxy配下でのSP構築に関して
関連: https://issues.shibboleth.net/jira/browse/SSPCPP-628
関連: (Shibboleth Users ML) Configuration of SP with apache and mod_shib - HTTP 401 error

SP

...

3.

...

0.x

...

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

バージョンは変わっておりませんが、23.6.1リリース後にlibxmltooling7のセキュリティアップデートが出ていますので適宜アップデートしてください。これのみの適用の場合は自動再起動されませんので、shibdおよびhttpdを再起動してください。

バージョンは変わっておりませんが、2.6.0リリース後にCentOS 6/7(RHEL 6/7)向けにlibcurl-opensslのアップデートが出ていますので、適宜アップデートしてください。同様に、2.6.1リリース後にlibcurl-opensslのセキュリティアップデートが出ています。
https://marc.info/?l=shibboleth-announce&m=151205545006433&w=2

A security advisory [1] and update to curl was released a couple of days ago, so we have updated the version included in our packages accordingly to 7.57.0.

RPMs on affected platforms were published on Tuesday and the Windows installers have been updated this morning to 2.6.1.2. I'll update the release notes imminently.

http://marc.info/?l=shibboleth-announce&m=147817836306162&w=2

As a sidenote, the RPMs supplied for libcurl on RHEL 6/7 have also been updated.

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

SP 2.6.x から SP 3.0

...

.x へアップデートする場合の注意点

ライブラリがlibsaml9およびlibxmltooling7にバージョンアップしています。不要なら以下のように以前のバージョンは削除してください。

パネル
$ sudo yum erase libsaml8 libxmltooling6

ignoreCase属性を使用している場合は以下の情報を元にcaseSensitiveを使うように設定ファイルを更新してください。
2016-07-27 [upki-fed:01064] Shibboleth SP脆弱性情報にかかる補足(Re: Shibboleth SP の脆弱性について (2016/5/6)

2016-07-13までに提供していたRPMパッケージはデフォルト設定ファイルのcipherSuitesに問題がありTLS接続でエラーになる可能性があります。デフォルト設定ファイルの問題ですので原則的にこの期間に新規インストールした方が対象となり、cipherSuites=の記述をコピーしていない限り以前のバージョンからアップデートした方は対象外です。
2.6.0-1.1をインストールしている方は2.6.0-2.1にアップデートした上で、shibboleth2.xmlに

コード ブロック
    <ApplicationDefaults entityID="https://sp.example.org/shibboleth"
                         REMOTE_USER="eppn persistent-id targeted-id"
                         cipherSuites="ECDHE+AESGCM:ECDHE:!aNULL:!eNULL:!LOW:!EXPORT:!RC4:!SHA:!SSLv2">

のような記述があれば、cipherSuites="..."の部分を削除してください。
Shibboleth Projectからのアナウンス: http://marc.info/?l=shibboleth-announce&m=146834985418022&w=2

その他の新機能:
exportDuplicateValues
template (base64-encoded SAML <AuthnRequest> message)

XERCES_DISABLE_DTD=1

警告

ここに書いていた手順は機能しないことが判明しました。CentOS 7については、Red Hatが提供している標準パッケージのXerces-Cライブラリのバージョンが3.1.1である(2018年1月現在バックポートもされていない)ため、DTDを無効化するために必要なXerces-Cライブラリのバージョンが3.1.4以上であることを満たせません。

一方CentOS 6については、Shibboleth SP 2.6.0以上であれば自動的にDTD無効化されるため特殊な作業は必要ありません。

誤った情報を提供しておりましたことをお詫びします。

展開
title誤った情報のため削除

CentOS 6では、脆弱性の温床であるDTD形式での記述を一切処理しないようにすることができます。Shibbolethおよび学認では使用しておりませんので、セキュリティ強化のため是非この手順を実施してください。

実施するには、/etc/sysconfig/shibdおよび/etc/sysconfig/httpdの末尾に以下の行を加えます。(CentOS 7での手順は後述)

書式設定済み
export XERCES_DISABLE_DTD=1

shibdおよびhttpdの再起動後に、以下のようなコマンドを使って当該環境変数が設定されていることを確認してください。

書式設定済み
$ sudo /sbin/service httpd restart
$ sudo /sbin/service shibd restart
$ sudo less /proc/`pidof -s shibd`/environ
$ sudo less /proc/`pidof -s httpd`/environ
情報

CentOS 7では上記手順では反映されませんので、下記手順に従ってください。

shibdについては、以下のようにしてsystemdの設定で環境変数を追加します。最後のコマンドで当該環境変数が設定されていることを確認してください。

書式設定済み
$ sudo systemctl edit shibd.service
[Service]
Environment=XERCES_DISABLE_DTD=1
$ sudo systemctl daemon-reload
$ sudo systemctl restart shibd
$ sudo less /proc/`pidof -s shibd`/environ

httpdのほうはexportを省いた以下の行を/etc/sysconfig/httpdの末尾に追記します。同様に最後に記載したコマンドで当該環境変数が設定されていることを確認してください。

書式設定済み
XERCES_DISABLE_DTD=1
書式設定済み
$ sudo vi /etc/sysconfig/httpd
$ sudo systemctl restart httpd
$ sudo less /proc/`pidof -s httpd`/environ

verifyBackup="false"

バッキングファイルが他者によって変更されないことが確実な場合はSignature MetadataFilterの末尾に verifyBackup="false" を追加してください。起動時のメタデータ読み込み時にバッキングファイルの署名検証がスキップされ起動が速くなります。

コード ブロック
languagexml
<MetadataFilter type="Signature" certificate="/etc/shibboleth/cert/gakunin-signer-2010.cer" verifyBackup="false"/>

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

*はセキュリティフィックス

...

  • 本件はXerces-Cライブラリの脆弱性ですので当該ライブラリのアップデートのみでも対処可能です。またディストリビューションのアップデート提供時期によっては当該ライブラリのアップデート提供時期が後になることが考えられます。その場合自動再起動が行われませんので、上記手順に従って再起動(もしくはOS自体の再起動)を必ず行ってください。

...

  • MetadataProviderにてvalidate="true"がデフォルトになりました。これまでの設定ファイルは上書きされませんので、新規SPでだけ問題が発生している場合はこの影響である可能性があります。例えば、regexp属性を持たない<shibmd:Scope>要素がエラーになります。
    ちなみにIdPv3でもダウンロードしたメタデータのバリデーションを行うのがデフォルトです。
  • 初期のCentOS 7向け(systemd対応版)はリブート時に/var/run/shibboleth/が消えて起動しなくなるので2.5.5-3.1以降を使うこと。

...

2.5.4(*) [upki-fed:00923] Shibboleth SP の脆弱性について (2015/3/19) (CVE-2015-0252)

  • mod_shibのログのデフォルト出力先が /var/log/httpd/{native.log,native_warn.log} から /var/log/shibboleth-www/{native.log,native_warn.log} に変更になっています。
    既存環境で追随するにはnative.logger.distを参考にnative.loggerを修正してください。
  • /var/cache/shibboleth/以下に大量の*.jsonという名前のキャッシュが削除されず残る問題が、このバージョンで修正されています。このファイルが大量にある場合は、適宜削除してください。
  • 2.5.0での修正点に見落としがありましたので、下のほうに追記しました。当該warningが気になる人は対処してください。⇒2.5.0のshibboleth2.xml
  • このバージョン前後でOpenSSL 1.0.1系とリンクするようになり、可能な環境ではECDSA/GCMに対応します。/Shibboleth.sso/Metadataから利用可能なアルゴリズムが確認できます。
  • shibboleth2.xml:
    DiscoveryFilterが追加され、フェデレーションメタデータ中に"hide-from-discovery"と宣言されているIdPがDiscoFeedに入らなくなります。

  • attribute-map.xml:
    uidの行が追加されていますが、デフォルトでコメントアウトされています。

2.5.2(*) Shibboleth SP heap overflow processing InclusiveNamespace PrefixList (CVE-2013-2156)

...

title(shib.confを修正して使っている方向け)shib.confの変更点

 2.5.2において/etc/httpd/conf.d/shib.confに以下の追加が行なわれておりますが、shib.confを修正している場合は反映されません。必要に応じてshib.confを修正してください。
なお、サイト全体にBASIC認証等で制限をかけている場合を除いてこれによる影響はないと思われます。

...

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

不要なパッケージ/ファイルの削除

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

パネル

$ sudo yum erase libsaml9 libxmltooling7 libxml-security-c17 liblog4shib1 xerces-c

2.xで/var/log/shibboleth-www/以下に出力されていたログは3.0では/var/log/messagesに出力されるようになりました。既存のログファイルに有益なものはないと思いますので削除してかまいません。

パネル

$ sudo rm -r /var/log/shibboleth-www

また、2.xでは不要になったDiscoFeedキャッシュの削除処理に不具合があり、当該ディレクトリに残り続けているものがある可能性があります。アップデート後1時間以上経ってから以下のようなコマンドを実行して不要なファイルを削除してください。

パネル

$ sudo find /var/cache/shibboleth/ -name \*.json -type f -mmin +60 -exec rm {} \;

shibboleth2.xmlの新形式への移行

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

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

コード ブロック
languagexml
<MetadataProvider 

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

0. 事前準備

以前情報交換メーリングリストでご案内いたしましたように、rpmパッケージで導入されている場合は、shibd という非rootユーザが新たに作られその権限で起動するようになるため、昔の学認の技術ガイドに沿って設定している場合に2点問題が生じます。技術ガイドは2011年11月に修正済みです。それ以前にSPを構築された方は以下の設定を確認してください。

まず、server.key のパーミッションの問題です。rootにしか読み取り権限を与えていない場合、2.5をインストールした時点で自動再起動がかかるため、shibdがエラーで停止してしまいます。
回避方法はいくつかありますが、下記のように sp-key.pem をシンボリックリンクにしておくと、2.5インストール時に自動的に server.key のownerが修正されます。

書式設定済み
$ sudo mv -i /etc/shibboleth/sp-key.pem{,.dist} && sudo ln -s cert/server.key /etc/shibboleth/sp-key.pem
注意

この回避策は当該秘密鍵がSPのみで使用されている場合で、slapdなど他のプロセスからも参照されている場合は注意が必要です。
具体的に言うと、アップデート前の時点で秘密鍵ファイルのowner/グループがroot:rootでない場合が該当します。上述のようにシンボリックリンクを作成すると、2.5へのアップデートによってこれがshibd:shibdに強制変更されます。ACLを含めたパーミッションは変更されないようですので、setfacl等でACLを設定しておけば回避できます。

2点目の問題は、ダウンロードしたメタデータのバックアップファイルを置くディレクトリのパーミッションです。/etc/shibboleth/metadata/ にバックアップを置くように設定されている場合、このディレクトリはshibdユーザの権限ではファイルが置けません。

回避方法は、shibboleth2.xmlで

backingFilePath="/etc/shibboleth/metadata/federation-metadata.xml"

のように絶対パスで指定している部分を

backingFilePath="federation-metadata.xml"

のように相対パスに変更します。このように変更しておけば、適切にownerが設定されるディレクトリ /var/cache/shibboleth/ を使うようになります。

注意

これを無視してアップデートすると以下のようなエラーがログに記録されるようになります。(リモートのメタデータにアクセスできている限りにおいてSP停止などの実害はありません)

書式設定済み
2011-10-17 18:30:07 DEBUG OpenSAML.MetadataProvider.XML [GakuNinMetadata]: committing backup file to permanent location (/etc/shibboleth/metadata/federation-metadata.xml)
2011-10-17 18:30:07 CRIT OpenSAML.MetadataProvider.XML [GakuNinMetadata]: unable to rename metadata backup file

1. SPアップデート後

事前準備の後始末

事前準備で sp-key.pem をシンボリックリンクにしていた場合、それを元に戻してowner/グループを2.5対応に変更します。

書式設定済み
$ sudo chown shibd:shibd /etc/shibboleth/sp-key.pem.dist && sudo rm /etc/shibboleth/sp-key.pem && sudo mv -i /etc/shibboleth/sp-key.pem{.dist,}

また、メタデータのバックアップファイルの移動に伴い、/etc/shibboleth/metadata/federation-metadata.xml* は使われなくなっておりますので、紛らわしくないように削除しておきましょう。

sudo rm /etc/shibboleth/metadata/federation-metadata.xml*

これにより /etc/shibboleth/metadata/ に1つもファイルがなくなったら、ディレクトリ自体を削除してしまってかまいません。

sudo rmdir /etc/shibboleth/metadata/

もし、事前準備後shibdを再起動していたら、/var/run/shibboleth/以下にバックアップファイルが作成されています。しかしアップデート後は/var/cache/shibboleth/以下が使われているはずです。こちらも紛らわしくないように削除しておきましょう。同様に、/var/run/shibboleth/側に *.json というファイルがある場合も削除してかまいません。

sudo rm /var/run/shibboleth/federation-metadata.xml*
sudo rm /var/run/shibboleth/*.json

不要なパッケージの削除

libsaml, libxmltooling, libxml-security-cが合わせてバージョンアップしパッケージ名が変更になっています。古いバージョンは削除されないようなので、他で使っていなければ削除してしまいましょう。

sudo yum erase libsaml7 libxmltooling5 libxml-security-c16

shibboleth2.xml

静的ファイルの1つ、Shibbolethロゴが削除された影響の1つです。
以前からのshibboleth2.xmlを使っている場合は以下の行を含んでいるはずですが、当該ファイルが削除されていますので、shibboleth2.xmlのこの行も削除してください。

logoLocation="/shibboleth-sp/logo.jpg"

また、以前からのshibboleth2.xmlをそのまま使っている場合は2.5.0以降では以下の警告が表示されるようになります。

書式設定済み
2012-10-13 18:54:49 WARN Shibboleth.AttributeExtractor.XML : attribute mappings are reloadable; be sure to restart web server when adding new attribute IDs

attribute-map.xmlの読み込み部分にreloadChanges="false"を付けるとよいです。こうすることでattribute-map.xmlの修正時に反映するには再起動が必要になりますが、元々そうすべきでした(そのほうが安全です)。

コード ブロック
languagediff
         </MetadataProvider>
 
         <!-- Map to extract attributes from SAML assertions. -->
-        <AttributeExtractor type="XML" validate="true" pathfile="attributepartner-mapmetadata.xml"/>
+        <AttributeExtractor type="XML" validate="true" reloadChanges="false" path="attribute-map.xml"/>
         
         <!-- Use a SAML query if no attributes are supplied during SSO. -->
         <!-- 

詳細: Default Reloading of Attribute Mappings Disabled - NativeSPConfigurationChanges - Shibboleth Wiki

shib.conf

静的ファイルの1つ、Shibbolethロゴが削除された影響のもう1つです。
/etc/httpd/conf.d/shib.conf を修正して使っていた方は、shib.conf.rpmnew というファイルが新たに作成されていると思います。差分を確認し(下記の行は削除して問題ありません)必要があれば修正の上、shib.confを置き換えてください。

書式設定済み
--- /etc/httpd/conf.d/shib.conf	2013-05-21 19:33:44.696374317 +0900
+++ /etc/httpd/conf.d/shib.conf.rpmnew	2013-01-10 04:30:48.000000000 +0900
@@ -20,7 +20,6 @@
     Allow from all
   </Location>
   Alias /shibboleth-sp/main.css /usr/share/shibboleth/main.css
-  Alias /shibboleth-sp/logo.jpg /usr/share/shibboleth/logo.jpg
 </IfModule>

 #

2. SP 2.5.0からの新機能

一部GakuNinShareでご紹介しています。
Shibboleth SP 2.5.0からの新機能

3. その他の情報

  • 展開
    titleその他未整理の情報

    PKCS#1.5使えなくなった - /etc/shibboleth/security-policy.xml
          <AlgorithmBlacklist includeDefaultBlacklist="true"/>
    新機能Metadata Attribute Extractor non-ASCIIでエラー SSPCPP-547
    _shibsession_* cookie HttpOnlyが付くようになった
    _shibstate_* 時限付き
    acl ::1入った
    helpLocation="/about.html"
    cookieProps書式変更
    handlerSSL="true"
    shibboleth2.xmlの書式エラーでhttpdが起動しなくなった?
    /var/log/httpd/native.log, native_warn.logが記録されるようになる

    2012-08-08 04:35:19 CRIT XMLTooling.Logging : error in file permissions or logging configuration: exception creating appender: failed to open log file (/var/log/httpd/native.log)
    2012-08-08 04:35:19 CRIT Shibboleth.Config : failed to load new logging configuration from (native.logger)

    https://wiki.shibboleth.net/confluence/display/SHIB2/NativeSPConfigurationChanges
    https://wiki.shibboleth.net/confluence/display/SHIB2/NativeSPInterestingFeatures
    requireAuthenticatedEncryption signResponse="conditional"にしないと

    opensaml::FatalProfileException at (https://HOSTNAME/Shibboleth.sso/SAML2/POST)
    A valid authentication statement was not found in the incoming message.

    ログには以下が記録される。

    2012-10-14 09:26:14 ERROR Shibboleth.SSO.SAML2 [7]: failed to decrypt assertion: Unauthenticated data encryption algorithm unsupported.

    2012-10-13 18:54:49 WARN Shibboleth.PropertySet : deprecation - remapping property (relayStateLimit) to (redirectLimit)
    2012-10-13 18:54:49 WARN Shibboleth.Application : empty/missing cookieProps setting, set to "https" for SSL/TLS-only usage
    2012-10-13 18:54:49 WARN Shibboleth.Application : handlerSSL should be enabled for SSL/TLS-enabled web sites

以前の情報

SPアップデート手順(*はセキュリティフィックス)

...

のような記述の file=path= に、 uri=url= に修正する必要があります。

DEPRECATEDログが出なくなったら、ファイル先頭の2.0を3.0に変更(2か所)して完了です。

パネル

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

2. SP 3.0.0からの新機能

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

なお、CentOS 7ではxerces-cライブラリを独自提供することによりDTDを無効化するという機能強化が行われております。攻撃耐性強化のために、是非移行をご検討ください。

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

3. その他の情報

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

...