13.2. セキュリティートークンサービス(STS)の設定
EAP Security Token Service(STS)は、拡張ポイントを提供する複数のインターフェースを定義します。設定を使用して実装をプラグインでき、設定を介してデフォルト値を一部のプロパティーに指定できます。すべての STS 設定は、デプロイされたアプリケーションの
WEB-INF
ディレクトリーにある picketlink.xml
ファイルに指定されます。以下は、picketlink.xml
ファイルで設定できる要素です。
注記
以下のテキストでは、サービスプロバイダー は、クライアントによるセキュリティートークンの表示を必要とする Web サービスを参照します。
PicketLinkSTS
: これはルート要素です。STS 管理者が以下のデフォルト値を設定できるようにするプロパティーを定義します。STSName
: セキュリティートークンサービスの名前を表す文字列。指定のない場合は、デフォルトのPicketLinkSTS
値が使用されます。TokenTimeout
: トークンの有効期間の値(秒単位)。指定されていない場合は、デフォルト値の 3600(1 時間)が使用されます。EncryptToken
: 発行されたトークンを暗号化するかどうかを指定するブール値。デフォルト値は false です。
KeyProvider
: この要素とそのすべてのサブ要素は、トークンに署名および暗号化するために PicketLink STS によって使用されるキーストアを設定するために使用されます。このセクションでは、キーストアの場所、パスワード、署名 (秘密鍵) のエイリアス、パスワードなどのプロパティーをすべて設定します。RequestHandler
: この要素は、使用されるWSTrustRequestHandler
実装の完全修飾名を指定します。指定のない場合は、デフォルトのorg.picketlink.identity.federation.core.wstrust.StandardRequestHandler
が使用されます。TokenProvider
: このセクションは、各種類のセキュリティートークンを処理するために使用する必要があるTokenProvider
実装を指定します。この例では、2 つのプロバイダー(SpecialToken
タイプのトークンとSAMLV2.0
タイプのトークンを処理するプロバイダー)があります。WSTrustRequestHandler
は、getProviderForTokenType
のSTSConfiguration
(String type)メソッドを呼び出して、適切なTokenProvider
への参照を取得します。TokenTimeout
: これは、WS-Trust リクエストに lifetime が指定されていない場合にWSTrustRequestHandler
によって使用されます。これは、作成時間として現在の時間が含まれる Lifetime インスタンスを作成し、指定の秒数後に有効期限が切れます。ServiceProviders
: このセクションでは、各サービスプロバイダー(セキュリティートークンを必要とする Web サービス)に使用する必要があるトークンタイプを指定します。WS-Trust リクエストにトークンタイプが含まれていない場合、WSTrustRequestHandler
はサービスプロバイダーエンドポイントを使用して発行する必要のあるトークンのタイプを検出する必要があります。EncryptToken
: これは、発行されたトークンを暗号化する必要があるかどうかを判断するためにWSTrustRequestHandler
によって使用されます。true の場合、サービスプロバイダーの公開鍵証明書(PKC)を使用してトークンを暗号化します。
以下は STS 設定の例になります。
例13.3 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>