15.7.6. サービスプロバイダーにおける動的 Account Chooser (アカウントチューザー) の設定

サービスプロバイダー (SP) が複数のアイデンティティープロバイダー (IDP) と設定されている場合、どの IDP を使用してクレデンシャルを認証するかをユーザーが選択できるように PicketLink を設定することができます。

手順15.4 サービスプロバイダーにおける動的 Account Chooser (アカウントチューザー) の設定

  1. SP Web アプリケーションの WEB-INF ディレクトリーにある jboss-web.xml で Account Chooser (アカウントチューザー) バルブを設定します。

    例15.16 SP アカウントチューザーの jboss-web.xml ファイル設定

    <jboss-web>
      <security-domain>sp</security-domain>
      <context-root>accountchooser</context-root>
      <valve>
        <class-name>org.picketlink.identity.federation.bindings.tomcat.sp.AccountChooserValve</class-name>
      </valve>
      <valve>
        <class-name>org.picketlink.identity.federation.bindings.tomcat.sp.ServiceProviderAuthenticator</class-name>
      </valve>
    </jboss-web>
    AccountChooserValve には以下の設定可能なオプションがあります。
    DomainName
    ユーザーのブラウザーへ送信されるクッキーに使用されるドメイン名。
    CookieExpiry
    クッキーの有効期限 (秒単位)。デフォルトは -1 で、ブラウザーが閉じられたときにクッキーの有効期限が切れることを意味します。
    AccountIDPMapProvider
    IDP マッピングの実装の完全修飾名。デフォルトは、SP Web アプリケーションの WEB-INF ディレクトリーにある idpmap.properties プロパティーファイルです。この実装は、org.picketlink.identity.federation.bindings.tomcat.sp.AbstractAccountChooserValve.AccountIDPMapProvider を実装する必要があります。
    AccountChooserPage
    異なる IDP アカウントをリストする HTML/JSP ページの名前。デフォルトは /accountChooser.html です。
  2. IDP のマッピングを定義します。デフォルトは、SP Web アプリケーションの WEB-INF ディレクトリーにある idpmap.properties プロパティーファイルです。

    例15.17 idpmap.properties 設定

    DomainA=http://localhost:8080/idp1/
    DomainB=http://localhost:8080/idp2/
  3. ユーザーが IDP を選択するための HTML ページを SP Web アプリケーションで作成します。デフォルトでは、このファイルは accountChooser.html になります。各 IDP への URL には、idpmap.properties にリストされた IDP の名前を指定する idp パラメーターが必要です。

    例15.18 accountChooser.html 設定

    <html>
      ...
      <a href="?idp=DomainA">DomainA</a>
      <hr/>
      <a href="?idp=DomainB">DomainB</a>
      ...
    </html>