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接続情報の例
    <!-- Policy for GakuNin Example SP -->
    <afp:AttributeFilterPolicy id="PolicyforGakuNinExampleSP" xmlns:afp="urn:mace:shibboleth:2.0:afp">
        <afp:PolicyRequirementRule xsi:type="basic:AttributeRequesterString" value="https://sp.example.ac.jp/shibboleth-sp" />

        <afp:AttributeRule attributeID="eduPersonPrincipalName">
              <afp:PermitValueRule xsi:type="basic:ANY" />
        </afp:AttributeRule>
        <afp:AttributeRule attributeID="organizationName">
              <afp:PermitValueRule xsi:type="basic:ANY" />
        </afp:AttributeRule>
    </afp:AttributeFilterPolicy>

旧書式→新書式

SPからの接続情報に限定して簡略化すると手順は以下のようになります。

  1. afp: を全て削除する(該当しない場合は無視)

  2. xmlns:afp="urn:mace:shibboleth:2.0:afp" を削除する(該当しない場合は無視)

  3. basic:AttributeRequesterStringRequester で置き換える

  4. 残りの basic: を全て削除する

詳細:attribute-resolver.xml/attribute-filter.xmlの名前空間フラット化への対応手順

正式属性名→略式属性名

attributeID="..." となっている部分の属性名について、以下の置き換えを行います。

正式属性名略式属性名
jaOrganizationalUnitNamejaou
jaOrganizationNamejao
jaSurnamejasn
organizationalUnitNameou
organizationNameo
surnamesn

詳細:テンプレートの「更新情報2020年8月11日(4.0.0)

以上


関連:SP管理者向けの情報:(SP運用担当者向け)学認Webサイトで公開されているSPマニュアルの書き方(IdP向け属性送信設定方法等)

  • ラベルがありません