Shibboleth IdPバージョン4がリリースされてしばらくたちますが、SPから提供される情報が最新の情報を反映したものとは限りません。
ここでは、SPからの情報が古いと思われる場合にどう読み替えればよいかを説明します。
1. IdPの動作環境の確認
まず、ご自身がお使いのIdPの動作環境を確認しておきましょう。
1-1. Shibboleth IdPのバージョン
$ /opt/shibboleth-idp/bin/version.sh
コマンド等でお使いのShibboleth IdPのバージョンを確認してください。
バージョン4をお使いの場合は新書式(ざっくり「フラット化」とも呼ばれます)の使用が必須です。なお、新書式はバージョン3.2以降(attribute-resolver.xmlについては3.3以降)で使用可能です。
1-2. 学認テンプレートのバージョン
Shibboleth IdPのバージョンとは別に、ご利用の設定ファイルattribute-resolver.xmlおよびattribute-filter.xmlのベースとなっている学認テンプレートにもバージョンがあります。Shibboleth IdPバージョン4を新規に構築した場合は学認テンプレートも最新のものをお使いだと思いますが、V2やV3時代からアップデートを繰り返している場合は学認テンプレートのバージョンのみ古いことが考えられます。
学認テンプレートのバージョンは、当該ファイルの先頭のコメントに以下のような記述がありますので確認してください。
GakuNin/ConfigTemplate/attribute-filter-template-prodfed.xml version 3.2.0
特殊な例として上記コメントはそのままに大幅に書き換えて最新の書式に対応している場合が考えられますが、ここでは対象外とします。
学認テンプレートのバージョンによる違いはIdP上で用いられる属性名で、ここでは「略式属性名」と「正式属性名」と呼びます。略式属性名は学認テンプレートV4およびそれ以降で使われていて、学認が規定している属性のfriendlyNameと一致します。学認テンプレートV3およびそれ以前では正式属性名が使われていました。正式属性名は学認が規定している属性の「名称」と一致します。
2. 読み替えの手順
大抵の「古い」SP情報は「旧書式」かつ「正式属性名」で書かれていますのでこれを前提とします。これをお使いの環境に合わせて以下の手順で読み替えを行ってください。(必ず1.で取得した情報に従って必要な手順のみ実行してください。おそらく「旧書式→新書式」は共通の手順で、お使いの学認テンプレートのバージョンによって「正式属性名→略式属性名」は実行しなければならない場合と実行してはならない場合があります)
旧書式→新書式
SPからの接続情報に限定して簡略化すると以下のようになります。
afp:
を全て削除する(該当しない場合は無視)xmlns:afp="urn:mace:shibboleth:2.0:afp"
を削除する(該当しない場合は無視)basic:AttributeRequesterString
をRequester
で置き換える- 残りの
basic:
を全て削除する
詳細:attribute-resolver.xml/attribute-filter.xmlの名前空間フラット化への対応手順
正式属性名→略式属性名
学認テンプレート attributeID="..." となっている中身について、以下の置き換えを行います。
正式属性名 | 略式属性名 |
---|---|
jaOrganizationalUnitName | jaou |
jaOrganizationName | jao |
jaSurname | jasn |
organizationalUnitName | ou |
organizationName | o |
surname | sn |
詳細:テンプレートの「更新情報2020年8月11日(4.0.0)」
以上