このタスクでは、アプリケーション・レベルでトークン生成プログラムを指定するために必要なステップについて説明します。
この情報は、セキュリティー・トークンを生成するために、生成プログラム側で使用されます。
アプリケーション・レベルでこのトークン生成プログラムを構成するには、以下のステップを実行します。
- WebSphere® Application Server 管理コンソールのトークン生成プログラム・パネルを見つけます。
- 「アプリケーション」>「エンタープライズ・アプリケーション」>「application_name」の順にクリックします。
- 「関連項目」の下で、「EJB モジュール」または「Web モジュール」>「URI_name」の順にクリックします。
- 「追加プロパティー」の下で、以下のバインディングのトークン生成プログラムにアクセスすることができます。
- 要求生成プログラム (送信側) バインディングについては、「Web サービス: クライアント・セキュリティー・バインディング」をクリックします。
「Request generator (sender) binding」の下で、「Edit custom」をクリックします。
- 応答生成プログラム (送信側) バインディングについては、「Web services: Server security bindings」をクリックします。
「Response generator (sender) binding」の下で、「Edit custom 」をクリックします。
- 「追加プロパティー」の下で、「Token generators」をクリックします。
- 「新規」をクリックしてトークン生成プログラム構成を作成するか、
既存の構成の横にあるボックスを選択して「削除」をクリックすることで既存の構成を削除するか、
既存のトークン生成プログラム構成の名前をクリックして、その設定を編集します。 新規構成を作成している場合は、
「Token generator name」フィールドに固有の名前を入力します。
例えば、gen_signtgen と指定します。
- 「Token generator class name」フィールドでクラス名を指定します。 トークン生成プログラム・クラスは、com.ibm.wsspi.wssecurity.token.TokenGeneratorComponent インターフェースを実装する必要があります。
要求ジェネレーターおよび応答ジェネレーターのトークン生成プログラム・クラス名は、
要求コンシューマーおよび応答コンシューマーのトークン・コンシューマー・クラス名と類似している必要があります。
例えば、アプリケーションがユーザー名トークン・コンシューマーを必要とする場合、
アプリケーション・レベルの「token consumer」パネルで com.ibm.wsspi.wssecurity.token.UsernameTokenConsumer クラス名を、
このフィールドで com.ibm.wsspi.wssecurity.token.UsernameTokenGenerator クラス名を指定することができます。
- オプション: 「Part reference」フィールドでパーツ参照を選択します。 パーツ参照は、デプロイメント記述子で定義されるセキュリティー・トークンの名前を示します。
重要: アプリケーション・レベルで、デプロイメント記述子内にセキュリティー・トークンを指定しない場合、「Part reference」フィールドは表示されません。デプロイメント記述子で、user_tgen と呼ばれるセキュリティー・トークンを定義する場合、
user_tgen は「Part reference」フィールドでオプションとして表示されます。
アセンブリー・ツールを使用してアプリケーションをアセンブルする場合、
デプロイメント記述子でセキュリティー・トークンを指定することができます。
- 証明書パスに対して「なし」または「Dedicated signing information」のいずれかを選択します。 トークン生成プログラムが PKCS#7 トークン・タイプを使用しない場合は、「なし」を選択します。
トークン生成プログラムが PKCS#7 トークン・タイプを使用し、セキュリティー・トークンで
証明書失効リスト (CRL) をパッケージする場合は、「Dedicated signing information」を選択して、証明書ストアを選択します。
アプリケーション・レベルで生成プログラム・バインディングのコレクション証明書ストアおよび証明書失効リストを構成するには、以下のステップを実行します。
- 「アプリケーション」>「エンタープライズ・アプリケーション」>「application_name」の順にクリックします。
- 「関連項目」の下で、「EJB モジュール」または「Web モジュール」>「URI_name」の順にクリックします。
- 「追加プロパティー」の下で、以下のバインディングのコレクション証明書ストア構成にアクセスすることができます。
- 要求生成プログラム (送信側) バインディングについては、「Web サービス: クライアント・セキュリティー・バインディング」をクリックします。
「Request generator (sender) binding」の下で、「Edit custom」をクリックします。
- 応答生成プログラム (送信側) バインディングについては、「Web services: Server security bindings」をクリックします。
「Response generator (sender) binding」の下で、「Edit custom 」をクリックします。
- 「追加プロパティー」の下で、「Collection certificate store」をクリックします。
コレクション証明書ストアの構成について詳しくは、
アプリケーション・レベルでの生成プログラム・バインディング用コレクション証明書ストアの構成を参照してください。
- オプション: 「Add nonce」オプションを選択します。 このオプションは、トークン生成プログラムのユーザー名トークンに nonce を組み込むかどうかを示します。
nonce はメッセージに組み込まれた固有の暗号数値であり、
ユーザー名トークンの、繰り返される未許可の攻撃を防ぐのに役立ちます。
「Add nonce」オプションは、生成されたトークン・タイプがユーザー名トークンであり、
要求生成プログラム・バインディングに対してのみ使用可能である場合に限り有効です。
「
Add nonce」オプションを選択する場合、「追加プロパティー」で以下のプロパティーを指定することができます。
これらのプロパティーは、要求コンシューマーによって使用されます。
表 1. 追加の nonce プロパティープロパティー名 |
デフォルト値 |
説明 |
com.ibm.ws.wssecurity.config.token.
BasicAuth.Nonce.cacheTimeout
|
600 秒 |
サーバー上でキャッシュされる nonce 値のタイムアウト値を秒単位で指定します。 |
com.ibm.ws.wssecurity.config.token.
BasicAuth.Nonce.clockSkew
|
0 秒 |
nonce タイム・スタンプの有効期限が切れるまでの時間を秒単位で指定します。 |
com.ibm.ws.wssecurity.config.token.
BasicAuth.Nonce.maxAge
|
300 秒 |
WebSphere Application Server がメッセージの適時性を確認する際に考慮するためのクロック・スキュー値を秒単位で指定します。 |
サーバー・レベルでは、WebSphere
Application Server 管理コンソールの「Default bindings for Web services security」
パネルで、nonce に対してこれらの追加プロパティーを指定することができます。
パネルにアクセスするには、「サーバー」>「アプリケーション・サーバー」
>「server_name」とクリックします。
「セキュリティー」の下で、「Web services: Default bindings for Web services security」をクリックします。
- オプション: 「Add timestamp」オプションを選択します。 このオプションは、ユーザー名トークンにタイム・スタンプを挿入するかどうかを示します。
「Add timestamp」オプションは、生成されたトークン・タイプがユーザー名トークンであり、
要求生成プログラム・バインディングに対してのみ使用可能である場合に限り有効です。
- 「Local name」フィールドで値タイプのローカル名を指定します。 ユーザー名トークンおよび X.509 証明書セキュリティー・トークンの場合、WebSphere
Application Server には、値タイプの事前定義されたローカル名があります。
以下のローカル名のいずれかを指定する場合、値タイプの URI を指定する必要はありません。
- http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-username-token-profile-1.0#UsernameToken
- このローカル名はユーザー名トークンを指定します。
- http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-x509-token-profile-1.0#X509
- このローカル名は X.509 証明書トークンを指定します。
- http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-x509-token-profile-1.0#X509PKIPathv1
- このローカル名は、Public Key Infrastructure (PKI) パスにある X.509 証明書を指定します。
- http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-x509-token-profile-1.0#PKCS7
- このローカル名は、X.509 証明書のリストおよび証明書失効リストを PKCS#7 形式で指定します。
LTPA トークンの場合、値タイプ・ローカル名に LTPA、
値タイプ URI に http://www.ibm.com/websphere/appserver/tokentype/5.0.2 を使用することができます。
- オプション: 「URI」フィールドで値タイプ URI を指定します。 この項目は、生成されるトークンの値タイプのネームスペース URI を指定します。
- 「OK」と「保管」をクリックして、構成を保管します。
- トークン生成プログラム構成の名前をクリックします。
- 「追加プロパティー」の下で、「Callback handler」をクリックします。
- コールバック・ハンドラーの設定を指定します。
- 「Callback handler class name」フィールドでクラス名を指定します。 このクラス名は、セキュリティー・トークン・フレームワークにプラグインする際に使用される
コールバック・ハンドラー実装クラスの名前です。
指定したコールバック・ハンドラー・クラスは、javax.security.auth.callback.CallbackHandler インターフェースを実装し、
以下の構文を使用してコンストラクターを提供する必要があります。
MyCallbackHandler(String username, char[] password, java.util.Map properties)
各部の説明:
- username
- 構成に渡されるユーザー名を指定します。
- password
- 構成に渡されるパスワードを指定します。
- properties
- 構成に渡されるその他の構成プロパティーを指定します。
このコンストラクターは、コールバック・ハンドラーがユーザー名およびパスワードを必要とする場合に必要です。
ただし、X509CallbackHandler などのコールバック・ハンドラーがユーザー名およびパスワードを必要としない場合、以下の構文で
コンストラクターを使用します。
MyCallbackHandler(java.util.Map properties)
WebSphere Application Server は、以下のデフォルトのコールバック・ハンドラー実装を提供します。
- com.ibm.wsspi.wssecurity.auth.callback.GUIPromptCallbackHandler
- このコールバック・ハンドラーは、ログイン・プロンプトを使用して、ユーザー名とパスワードの情報を収集します。
ただし、このパネルでユーザー名およびパスワードを指定した場合、
プロンプトは表示されず、WebSphere Application Server はユーザー名およびパスワードをトークン生成プログラムに戻します。
この実装は、
Java™ 2 Platform, Enterprise Edition (J2EE) アプリケーション・クライアントに対してのみ使用してください。
この実装を使用する場合は、このパネルで基本認証ユーザー ID およびパスワードを指定する必要があります。
- com.ibm.wsspi.wssecurity.auth.callback.NonPromptCallbackHandler
- このコールバック・ハンドラーはプロンプトを発行せず、このパネル上で指定されている場合は、ユーザー名とパスワードを戻します。このコールバック・ハンドラーは、Web サービスがクライアントとして機能している場合に使用できます。この実装を使用する場合は、このパネルで基本認証ユーザー ID およびパスワードを指定する必要があります。
- com.ibm.wsspi.wssecurity.auth.callback.StdinPromptCallbackHandler
- このコールバック・ハンドラーは、standard-in プロンプトを使用して、ユーザー名およびパスワードを収集します。ただし、
このパネルでユーザー名とパスワードが指定された場合、WebSphere
Application Server はプロンプトを表示しませんが、トークン生成プログラムに
ユーザー名とパスワードを戻します。
この実装は、
Java 2 Platform, Enterprise Edition (J2EE) アプリケーション・クライアントに対してのみ使用してください。
この実装を使用する場合は、このパネルで基本認証ユーザー ID およびパスワードを指定する必要があります。
- com.ibm.wsspi.wssecurity.auth.callback.LTPATokenCallbackHandler
- このコールバック・ハンドラーは、Run As 呼び出しサブジェクトから Lightweight Third Party Authentication (LTPA) セキュリティー・トークンを取得するために使用されます。
このトークンは、バイナリー・セキュリティー・ トークンとして SOAP メッセージ内で Web サービス・セキュリティー・ヘッダーに挿入されます。
ただし、ユーザー名とパスワードがこのパネルで指定されている場合、WebSphere
Application Server は、Run As サブジェクトから LTPA セキュリティー・トークンを
取得するのではなく、ユーザー名とパスワードを認証してこれを取得します。このコールバック・ハンドラーは、Web サービスがアプリケーション・サーバー上でクライアントとして機能している場合のみ使用してください。
このコールバック・ハンドラーを J2EE アプリケーション・クライアント上で使用することはお勧めしません。
この実装を使用する場合は、このパネルで基本認証ユーザー ID およびパスワードを指定する必要があります。
- com.ibm.wsspi.wssecurity.auth.callback.X509CallbackHandler
- このコールバック・ハンドラーは、バイナリー・セキュリティー・トークンとして SOAP メッセージ内の Web サービス・
セキュリティー・ヘッダーに挿入される X.509 証明書を作成するために使用されます。
このコールバック・ハンドラーには、鍵ストアと鍵の定義が必要です。
この実装を使用する場合、このパネルで鍵ストア・パスワード、パス、およびタイプを指定する必要があります。
- com.ibm.wsspi.wssecurity.auth.callback.PKCS7CallbackHandler
- このコールバック・ハンドラーは、PKCS#7 フォーマットでエンコードされる X.509 証明書を作成するために使用されます。証明書は、バイナリー・セキュリティー・トークンとして SOAP メッセージ内の Web サービス・セキュリティー・ヘッダーに挿入されます。
このコールバック・ ハンドラーには鍵ストアが必要です。コレクション証明書ストアで証明書失効リスト (CRL) を指定することができます。
CRL は、PKCS#7 形式で X.509 証明書と共にエンコードされます。
この実装を使用する場合、このパネルで鍵ストア・パスワード、パス、およびタイプを指定する必要があります。
- com.ibm.wsspi.wssecurity.auth.callback.PkiPathCallbackHandler
- このコールバック・ハンドラーは、PkiPath 形式でエンコードされた X.509 証明書を
作成するために使用されます。証明書は、バイナリー・セキュリティー・トークンとして SOAP メッセージ内の Web サービス・セキュリティー・ヘッダーに挿入されます。
このコールバック・ ハンドラーには鍵ストアが必要です。CRL はコールバック・ハンドラーによってサポートされていないため、
コレクション証明書ストアは不要であるか使用されません。
この実装を使用する場合、このパネルで鍵ストア・パスワード、パス、およびタイプを指定する必要があります。
コールバック・ハンドラーの実装は、必要なセキュリティー・トークンを取得し、それをトークン生成プログラムに渡します。トークン生成プログラムは、セキュリティー・トークンを SOAP メッセージ内の Web サービス・セキュリティー・ヘッダーに挿入します。また、トークン生成プログラムは、プラグ可能なセキュリティー・トークン・フレームワークのプラグイン・ポイントです。
サービス・プロバイダーは独自の実装を提供できますが、実装は
com.ibm.wsspi.wssecurity.token.TokenGeneratorComponent インターフェースを使用する必要があります。
- オプション: 「Use identity assertion」オプションを選択します。 IBM® 拡張デプロイメント記述子で定義された ID 表明がある場合は、このオプションを選択します。このオプションは、初期送信側の ID のみが必要で、SOAP メッセージ内の Web サービス・セキュリティー・ヘッダーに挿入されることを示します。例えば、WebSphere Application Server は、
ユーザー名トークン生成プログラムの元の呼び出し元のユーザー名のみを送信します。
X.509 トークン生成プログラムの場合、
アプリケーション・サーバーはオリジナルの署名者認証のみを送信します。
- オプション: 「Use RunAs identity」オプションを選択します。 ユーザーが IBM 拡張デプロイメント記述子で定義された ID 表明を持ち、
ダウンストリーム呼び出しの ID 表明に対して、初期呼び出し元 ID の代わりに Run As ID を使用する場合、
このオプションを選択します。
このオプションは、Username TokenGenerator をトークン生成プログラムとして構成した場合にのみ有効です。
- オプション: 「基本認証ユーザー ID」フィールドで、基本認証ユーザー ID を指定します。 この項目は、コールバック・ハンドラー実装のコンストラクターに渡されるユーザー名を指定します。
「Callback handler class name」フィールドで以下のデフォルトのコールバック・ハンドラー実装の
いずれかを選択した場合、基本認証ユーザー名およびパスワードが使用されます。
- com.ibm.wsspi.wssecurity.auth.callback.GUIPromptCallbackHandler
- com.ibm.wsspi.wssecurity.auth.callback.NonPromptCallbackHandler
- com.ibm.wsspi.wssecurity.auth.callback.StdinPromptCallbackHandler
- com.ibm.wsspi.wssecurity.auth.callback.LTPATokenCallbackHandler
- オプション: 「基本認証パスワード」フィールドで、基本認証パスワードを指定します。 この項目は、コールバック・ハンドラー実装のコンストラクターに渡されるパスワードを指定します。
- オプション: 「鍵ストア・パスワード」フィールドで、鍵ストア・パスワードを指定します。 この項目は、鍵ストア・ファイルへのアクセスに使用するパスワードを指定します。
WebSphere Application Server に用意された、
以下のデフォルトのコールバック・ハンドラー実装のいずれかを選択した場合、鍵ストアおよびその構成が使用されます。
- com.ibm.wsspi.wssecurity.auth.callback.PKCS7CallbackHandler
- この鍵ストアは、証明書パスで X.509 証明書を作成するために使用されます。
- com.ibm.wsspi.wssecurity.auth.callback.PkiPathCallbackHandler
- この鍵ストアは、証明書パスで X.509 証明書を作成するために使用されます。
- com.ibm.wsspi.wssecurity.auth.callback.X509CallbackHandler
- この鍵ストアは、X.509 証明書を検索するために使用されます。
- オプション: 「パス」フィールドで鍵ストア・パスを指定します。 パス名に ${USER_INSTALL_ROOT} を使用することをお勧めします。
この変数は、ご使用のマシンの WebSphere Application Server パスに展開されます。
この変数が使用するパスを変更するには、「環境」> 「WebSphere 変数」をクリックし、さらに
「USER_INSTALL_ROOT」をクリックします。このフィールドは、com.ibm.wsspi.wssecurity.auth.callback.PKCS7CallbackHandler、com.ibm.wsspi.wssecurity.auth.callback.PkiPathCallbackHandler、
または com.ibm.wsspi.wssecurity.auth.callback.X509CallbackHandler コールバック・ハンドラー実装を
使用する場合に必要です。
- オプション: 「タイプ」フィールドで、鍵ストア・タイプを選択します。 この選択は、鍵ストア・ファイルが使用するフォーマットを示します。
このフィールドには、次の値のいずれかを選択することができます。
- JKS
- 鍵ストアが Java Keystore (JKS) 形式を使用する場合は、このオプションを使用します。
- JCEKS
- Java Cryptography Extension が Software Development Kit (SDK) で構成されている場合は、このオプションを使用します。デフォルトの IBM JCE は、WebSphere Application Server で構成されています。このオプションは、Triple DES 暗号化を使用することにより、保管された秘密鍵の保護をより強化します。
- PKCS11KS (PKCS11)
- 鍵ストアが PKCS#11 ファイル形式を使用する場合は、この形式を使用します。この形式を使用する鍵ストアは、暗号ハードウェアについての RSA 鍵を含んでいるか、
暗号ハードウェアを使用する鍵を暗号化して、保護を確実なものにします。
- PKCS12KS (PKCS12)
- 鍵ストアが PKCS#12 ファイル形式を使用する場合は、このオプションを使用します。
- 「OK」をクリックし、次に「保管」をクリックして構成を保管します。
- トークン生成プログラム構成の名前をクリックします。
- 「追加プロパティー」の下で、「Callback handler」>「Keys」の順にクリックします。
- 鍵の名前、鍵の別名、および鍵パスワードを指定します。
- 「新規」をクリックして鍵情報を作成するか、
「削除」をクリックして既存の構成を削除するか、既存の鍵構成名をクリックして、その設定を編集します。 新しい構成を作成する場合は、「Key name」フィールド内に固有の名前を入力します。
デジタル・シグニチャーの場合、メッセージのデジタル署名に使用される鍵を判別するために、
この鍵の名前が要求ジェネレーターまたは応答ジェネレーターの署名情報によって使用されます。
暗号化の場合、
鍵の名前は、暗号化に使用される鍵を判別するために使用されます。鍵の名前は、完全修飾識別名にする必要があります。例えば、CN=Bob,O=IBM,C=US のようにします。
- 「Key alias」フィールドに鍵の別名を指定します。 鍵の別名は、鍵ロケーターが鍵ストア・ファイル内の鍵を探し出すときに使用されます。
- 「Key password」フィールドで鍵パスワードを指定します。 このパスワードは、鍵ストア・ファイル内の鍵オブジェクトにアクセスする際に必要です。
- 「OK」と「保管」をクリックして、構成を保管します。
アプリケーション・レベルのトークン生成プログラムが構成されました。
アプリケーション・レベルに対して同様のトークン・コンシューマー構成を指定する必要があります。