Child pages
  • IdPv4アップデートに関する情報

Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.

...

  • 名前空間のフラット化が強制され、プレフィックスありの(v2由来の名前空間を使用した)設定ファイルが使用できなくなります

  • IdP v3.4ではフラット化していない場合、DEPRECATEDのwarningとしてログに出力されます

    • 3.4.0以降も細かい改善が続けられていますので、v3.4系の最新版で確認してください
    • 静的に解析しているものと動的に解析しているものがあり、3.4系の最新版でしばらく動かして一通り認証フローの動作確認を行ってみることが必要です

    • フラット化の対応手順はこちら
      https://meatwiki.nii.ac.jp/confluence/x/F4Z7AQ
  • その他にも、DEPRECATEDのwarningとなる対象が複数あります
    • 影響の大きいものとして、<Dependency>要素はDEPRECATEDです
      • 内容によって<InputAttributeDefinition>もしくは<InputDataConnector>で置き換えてください。例えば

        Code Block
        languagexml
        <resolver:Dependency ref="myLDAP" />

        は(myLDAPがDataConnectorとして定義されていると仮定して)以下で置き換えます。attributeNamesには使用する属性名を(複数ある場合はスペース区切りで)列挙してください:

        Code Block
        languagexml
        <InputDataConnector ref="myLDAP" attributeNames="..." />

        また、

        Code Block
        languagexml
        <resolver:Dependency ref="eduPersonAffiliation" />

        は(eduPersonAffiliationがAttributeDefinitionで定義されていると仮定して)以下で置き換えます:

        Code Block
        languagexml
        <InputAttributeDefinition ref="eduPersonAffiliation" />
    • LegacyPrincipalConnector
      以下のwarningが出る場合は
      No Format
      WARN [DEPRECATED:118] - Spring bean 'c14n/LegacyPrincipalConnector', (c14n/subject-c14n.xml): This will be removed in the next major version of this software; replacement is <remove>

      conf/c14n/subject-c14n.xml の以下の部分を削除してください。

      Code Block
      languagexml
              <!--
              This is installed to support the old mechanism of using PrincipalConnectors in the attribute resolver
              to map SAML Subjects back into principals. If you don't use those (or this is a new install) you can
              remove this.
              -->
              <ref bean="c14n/LegacyPrincipalConnector" />

      フラット化への対応により<PrincipalConnector>は削除されているはずですので、当該部分を削除しても問題ありません。

    • 詳細はShibbolethの本家の情報を参照してください。
      • 変更のある要素への置き換え方法へのリンクを含めて記載されています
    • Shibboleth IdP V4への準備として、V3.4系最新版(2020年7月現在34系最新版(3.4.7)にてwarningが出なくなるまで設定ファイルを修正することを推奨します8)にてwarningが出なくなるまで設定ファイルを修正することを推奨します
  • すでにフラット化とDEPRECATED対応済みの学認テンプレートを配布中ですのでこちらも参考にしていただけます。ただし最新版attribute-resolver.xmlテンプレートにはV4向けのAttribute Registry対応も入っておりますので、本ページ(V3からのアップグレード)の文脈では参考にしないでください。具体的に言うと、<AttributeEncoder>の行は消さないでください。あくまでフラット化とDEPRECATEDな要素・属性の置き換えの参考として参照してください。
  • LDAP周りで、使用するライブラリがJNDIからUnboundIDに変更になることにより以下の通り設定によってはV4への移行後にエラーになる可能性が若干ございます。
    • LDAPのURL(ldap.propertiesの idp.authn.LDAP.ldapURL )がスラッシュ(/)で終わる場合はうまく動作しませんのでスラッシュを除去してください。
    • 検索フィルタ(ldap.propertiesの idp.attribute.resolver.LDAP.searchFilter )に空白が含まれるとActive Directory等との連携に問題が発生する場合がございますので、空白を除去してください。
    • LDAPConnectorもしくはJAASAuthnConfigurationにてJNDI特有のプロパティを使っている場合問題が発生します。プロパティ名に"jndi"を含むものもしくは下記"binary"にご注意ください。代替のものに置き換えてください。
      • 特にバイナリ属性(objectGUID等)については3.4.5よりLDAPConnectorにて<BinaryAttributes>要素がサポートされておりますのでこれで代替してください。プロパティ名は"java.naming.ldap.attributes.binary"となっております。
      • JNDI特有のプロパティとは、例えば、attribute-resolver.xmlの<DataConnector>に以下のような指定がある場合該当します。

        Code Block
        languagexml
                <LDAPProperty name="com.sun.jndi.ldap.connect.timeout" value="500"/>

        その他、IdPのディレクトリの中やJavaのディレクトリの中に jndi.properties というファイルが存在しその中で指定しているという場合があるようですのでご注意ください。

    • 上記問題の対象の場合は、V3.4系最新版で以下に記載されている手順でUnboundIDを使うようにして動作確認することを推奨します
      • V3.4.4以降で以下の行をldap.propertiesに追加すればJNDIでなくUnboundIDを使うようになります。

        Code Block
        idp.ldaptive.provider=org.ldaptive.provider.unboundid.UnboundIDProvider
      • V3系でUnboundIDが使われていることの確認は、idp.propertiesに

        Code Block
        idp.loglevel.ldap=INFO

        を追加してログレベルを変更の上再起動し、下記のように"Setting ldap provider to"が UnboundIDProvider になっていることを確認してください。

        Code Block
        2020-03-02 09:46:50,446 -  - INFO [org.ldaptive.DefaultConnectionFactory:192] - Setting ldap provider to org.ldaptive.provider.unboundid.UnboundIDProvider
        2020-03-02 09:46:50,453 -  - INFO [org.ldaptive.DefaultConnectionFactory:192] - Setting ldap provider to org.ldaptive.provider.unboundid.UnboundIDProvider
        2020-03-02 09:46:50,453 -  - INFO [org.ldaptive.DefaultConnectionFactory:192] - Setting ldap provider to org.ldaptive.provider.unboundid.UnboundIDProvider

        確認後、idp.propertiesに追加した行を削除してログレベルを元に戻してください。

    • 詳細はこちら: LDAPonJava (v4) および LDAPonJava>8 (v3)

...