本手順は作成中です。最終版までに変更される可能性がありますのでご注意ください。また、手順中のURLはまだ用意されておりません。
IdPの設定変更手順
新しい署名鍵で署名されたフェデレーションメタデータおよび新しい検証用証明書の公開後、本手順に従い設定変更を実施してください。
本ページに記載している署名検証用証明書およびそのフィンガープリント、メタデータ公開URLは次のページで公開されているものです。
https://meatwiki.nii.ac.jp/confluence/display/GakuNinShibInstall/signer
上記ページURLは学認技術運用基準7.3)にて規定されております。
学認技術運用基準:http://id.nii.ac.jp/1149/00000212/
学認技術ガイドに従って設定した標準的なIdP(バージョン3.3.2)の場合の設定です。異なるバージョン、設定の場合には適宜置き換えて読んでください。
新しい検証用証明書を以下のURLからダウンロードして「/opt/shibboleth-idp/credentials/gakunin-signer-2017.cer
」に置きます。https://metadata.gakunin.nii.ac.jp/gakunin-signer-2017.cer
証明書のfingerprint確認
ダウンロードした署名検証用証明書のフィンガープリントを表示し、以下と一致するか確認してください。
SHA256 Fingerprint=5E:D6:A8:C5:E9:30:49:3F:B4:BA:77:54:6A:FB:66:BA:14:7D:CB:50:5B:EF:0F:D9:7C:26:04:C2:D9:36:FD:81
OpenSSLコマンドでは以下のように確認します。
> openssl x509 -in gakunin-signer-2017.cer -fingerprint -sha256 -noout
/opt/shibboleth-idp/conf/metadata-providers.xml
を以下のように編集します。
<MetadataProvider>
のmetadataURL
に指定するメタデータダウンロードURLを以下の通り、末尾に?generation=2
を付加します。差分(unified diff形式)<MetadataProvider id="HTTPMetadata" (...略...) - metadataURL="https://metadata.gakunin.nii.ac.jp/gakunin-metadata.xml"> + metadataURL="https://metadata.gakunin.nii.ac.jp/gakunin-metadata.xml?generation=2"> (...略...)
<MetadataFilter>
のcertificateFile
に指定する署名検証用証明書のファイル名を以下の通り、2010
の部分を2017
に修正します。差分(unified diff形式)<MetadataProvider id="HTTPMetadata" (...略...) metadataURL="https://metadata.gakunin.nii.ac.jp/gakunin-metadata.xml?generation=2"> - <MetadataFilter xsi:type="SignatureValidation" certificateFile="%{idp.home}/credentials/gakunin-signer-2010.cer" /> + <MetadataFilter xsi:type="SignatureValidation" certificateFile="%{idp.home}/credentials/gakunin-signer-2017.cer" /> (...略...) </MetadataProvider>
変更後、以下のコマンドで設定を再読み込みします。
$ /opt/shibboleth-idp/bin/reload-service.sh -id shibboleth.MetadataResolverService
新しい署名鍵で署名されたメタデータがダウンロードされているか、保存されたメタデータファイル(/opt/shibboleth-idp/metadata/gakunin-metadata-backing.xml
もしくはmetadata-providers.xml
のbackingFile
で指定されたパス)を確認してください。
まず、ファイルの更新日時を確認し、上記再読み込みコマンド実行より後であることを確認してください。
次に、メタデータファイルの先頭から検索し、最初にマッチする</ds:X509Certificate>
の直前の行が以下のようになっていれば成功です。
nwU/H9ROp1cl </ds:X509Certificate>
以下のようになっている場合は古い署名鍵で署名されたものですので、ログ(/opt/shibboleth-idp/logs/idp-process.log
)でメタデータのダウンロードが行われているか、ダウンロードURLが ?generation=2
付きになっているかを確認してください。
7NVe3mIUWLcYEtdbC8Ip5OA2TXvA </ds:X509Certificate>
また、エラーログ(/opt/shibboleth-idp/logs/idp-warn.log
)に以下のように記録されている場合は署名検証に失敗しておりますので、metadata-providers.xmlの証明書ファイルの指定が -2017
のほうになっているか、および上述の証明書のフィンガープリントを今一度確認してください。
2017-11-16 13:44:23,237 - WARN [org.apache.xml.security.signature.XMLSignature:760] - Signature verification failed. 2017-11-16 13:44:23,237 - ERROR [org.opensaml.saml.metadata.resolver.filter.impl.SignatureValidationFilter:420] - Signature trust establishment failed for metadata entry GakuNin 2017-11-16 13:44:23,240 - WARN [org.opensaml.saml.metadata.resolver.filter.impl.SignatureValidationFilter:251] - Saw fatal error validating metadata signature(s), metadata will be filtered out org.opensaml.saml.metadata.resolver.filter.FilterException: Signature trust establishment failed for metadata entry at org.opensaml.saml.metadata.resolver.filter.impl.SignatureValidationFilter.verifySignature(SignatureValidationFilter.java:421)