5.2. PicketLink STS の設定

PicketLink STS は拡張ポイントを提供する複数のインターフェースを定義します。拡張ポイントでは、設定を介して実装をプラグ可能で、設定より一部のプロパティーのデフォルト値を指定できます。PicketLink STS のすべての設定は、picketlink-sts.xml ファイルに指定する必要があります。picketlink-sts.xml ファイルに設定できる要素は次のとおりです。

注記

以下では、サービルプロバイダーとはクライアントによって提示されるセキュリティートークンを必要とする Web サービスのことを言います。
  • PicketLinkSTS: ルート要素です。STS 管理者が以下のデフォルト値を設定できるよう、一部のプロパティーを定義します。
    • STSName: セキュリティートークンサービスの名前を表す文字列。指定がない場合は、デフォルト値の PicketLinkSTS が使用されます。
    • TokenTimeout: 秒単位のトークンライフタイム値。指定のない場合は、デフォルト値の 3600 (1 時間) が使用されます。
    • EncryptToken: 発行されたトークンが暗号化されるかどうかを指定するブール値。デフォルト値は false です。
  • KeyProvider: トークンを署名および暗号化するために PicketLink STS によって使用されるキーストアを設定するため、この要素とすべてのサブ要素が使用されます。キーストアの場所、そのパスワード、エイリアスおよびパスワードの署名 (秘密鍵) などのプロパティーは、すべてこのセクションに設定されます。
  • RequestHandler: この要素は、使用される WSTrustRequestHandler 実装の完全修飾名を指定します。指定がない場合、デフォルトの org.picketlink.identity.federation.core.wstrust.StandardRequestHandler が使用されます。
  • SecurityTokenProvider: このセクションは、各タイプのセキュリティートークンに対応するために使用する必要がある SecurityTokenProvider 実装を指定します。例には、SpecialToken タイプのトークンに対応するプロバイダーと、StandardToken タイプのトークンに対応するプロバイダーの 2 つのプロバイダーがあります。WSTrustRequestHandler は、STSConfigurationgetProviderForTokenType (文字列タイプ) メソッドを呼び出し、適切な SecurityTokenProvider への参照を取得します。
  • TokenTimeout: WS-Trust 要求にライフタイムが指定されていない場合に、WSTrustRequestHandler によって使用されます。作成時間が現在の時間で、指定の秒数後に期限切れとなるライフタイムインスタンスを作成します。
  • ServiceProviders: 各サービスプロバイダー (セキュリティートークンを必要とする Web サービス) に使用しなければならないトークンタイプを指定します。WS-Trust 要求にトークンタイプが含まれていない場合、WSTrustRequestHandler はサービスプロバイダーエンドポイントを使用して、発行する必要があるトークンのタイプを確認する必要があります。
  • EncryptToken: 発行されたトークンを暗号化する必要があるかどうかを決定するために、 WSTrustRequestHandler によって使用されます。true の場合、サービスプロバイダーの公開鍵証明書 (PKC) を使用してトークンが暗号化されます。
以下に、PicketLink STS の設定例を示します。

例5.3 PicketLink STS 設定

    <PicketLinkSTS xmlns="urn:picketlink:identity-federation:config:1.0"  
         STSName="Test STS" TokenTimeout="7200" EncryptToken="true">  
         <KeyProvider ClassName="org.picketlink.identity.federation.bindings.tomcat.KeyStoreKeyManager">  
              <Auth Key="KeyStoreURL" Value="keystore/sts_keystore.jks"/>   
                <Auth Key="KeyStorePass" Value="testpass"/>  
                <Auth Key="SigningKeyAlias" Value="sts"/>  
                <Auth Key="SigningKeyPass" Value="keypass"/>  
                <ValidatingAlias Key="http://services.testcorp.org/provider1" Value="service1"/>  
                <ValidatingAlias Key="http://services.testcorp.org/provider2" Value="service2"/>  
         </KeyProvider>  
         <RequestHandler>org.picketlink.identity.federation.core.wstrust.StandardRequestHandler</RequestHandler>  
         <TokenProviders>  
              <TokenProvider ProviderClass="org.picketlink.test.identity.federation.bindings.wstrust.SpecialTokenProvider"  
                   TokenType="http://www.tokens.org/SpecialToken"/>  
              <TokenProvider ProviderClass="org.picketlink.identity.federation.api.wstrust.plugins.saml.SAML20TokenProvider"  
                   TokenType="http://docs.oasis-open.org/wss/oasis-wss-saml-token-profile-1.1#SAMLV2.0"/>  
         </TokenProviders>  
         <ServiceProviders>  
              <ServiceProvider Endpoint="http://services.testcorp.org/provider1" TokenType="http://www.tokens.org/SpecialToken"  
                   TruststoreAlias="service1"/>  
              <ServiceProvider Endpoint="http://services.testcorp.org/provider2" TokenType="http://docs.oasis-open.org/wss/oasis-wss-saml-token-profile-1.1#SAMLV2.0"  
                   TruststoreAlias="service2"/>  
         </ServiceProviders>  
    </PicketLinkSTS>