アプリケーション・レベルでトークン・ジェネレーターを指定したとき、この情報をジェネレーター側で使用してセキュリティー・トークンを生成します。
このタスクについて
アプリケーション・レベルでこのトークン・ジェネレーターを構成するには、以下のステップを実行します。
プロシージャー
- 管理コンソールのトークン・ジェネレーター・パネルを見つけます。
- 「アプリケーション」>「エンタープライズ・アプリケーション」>「application_name」とクリックします。
- 「関連項目」の下で「EJB モジュール」または「Web モジュール」
>「URI_name」とクリックします。
- 「追加プロパティー」の下で、以下のバインディングのトークン・ジェネレーターにアクセスすることができます。
- 要求ジェネレーター (送信側) バインディングについては、「Web サービス:
クライアント・セキュリティーのバインディング」をクリックします。
「要求ジェネレーター (送信側) バインディング」の下の「カスタムの編集」をクリックします。
- 応答ジェネレーター (送信側) バインディングについては、「Web サービス: サーバー・セキュリティーのバインディング」をクリックします。
「応答ジェネレーター (送信側) バインディング」の下の「カスタムの編集」をクリックします。
- 「追加プロパティー」の下の「トークン・ジェネレーター」をクリックします。
- 「新規」をクリックしてトークン・ジェネレーター構成を作成するか、既存のトークン・ジェネレーター構成を選択します。
「削除」をクリックして既存の構成を削除するか、
あるいは既存のトークン・ジェネレーター構成の名前をクリックしてその設定を編集します。 新規構成を作成している場合は、「トークン・ジェネレーター名」フィールドに固有名を入力します。
例えば、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 は「パーツ参照」フィールドでオプションとして表示されます。
アセンブリー・ツールを使用してアプリケーションをアセンブルする場合、
デプロイメント記述子でセキュリティー・トークンを指定することができます。
- 証明書パスに対して「なし」または「専用署名情報」のいずれかを選択します。
トークン・ジェネレーターが PKCS#7 トークン・タイプを使用しない場合は、「なし」を選択します。
トークン・ジェネレーターが PKCS#7 トークン・タイプを使用し、セキュリティー・トークンで
証明書失効リスト (CRL) をパッケージする場合は、
「専用署名情報」を選択して、証明書ストアを選択します。
アプリケーション・レベルでジェネレーター・バインディングのコレクション証明書ストアおよび証明書失効リストを構成するには、
以下のステップを実行します。
- 「アプリケーション」>「エンタープライズ・アプリケーション」>「application_name」とクリックします。
- 「関連項目」の下で「EJB モジュール」または「Web モジュール」
>「URI_name」とクリックします。
- 「追加プロパティー」の下で、以下のバインディングのコレクション証明書ストア構成にアクセスすることができます。
- 要求ジェネレーター (送信側) バインディングについては、「Web サービス:
クライアント・セキュリティーのバインディング」をクリックします。
「要求ジェネレーター (送信側) バインディング」の下の「カスタムの編集」をクリックします。
- 応答ジェネレーター (送信側) バインディングについては、「Web サービス: サーバー・セキュリティーのバインディング」をクリックします。
「応答ジェネレーター (送信側) バインディング」の下の「カスタムの編集」をクリックします。
- 「追加プロパティー」の下の「コレクション証明書ストア」をクリックします。
コレクション証明書ストアの構成に関する情報も参照してください。
- オプション: 「nonce を追加」オプションを選択します。
このオプションは、トークン・ジェネレーターのユーザー名トークンに nonce を組み込むかどうかを示します。
nonce はメッセージに組み込まれた固有の暗号数値であり、
ユーザー名トークンの、繰り返される未許可の攻撃を防ぐのに役立ちます。
「nonce を追加」オプションは、生成されたトークン・タイプがユーザー名トークンであり、
要求ジェネレーター・バインディングに対してのみ使用可能である場合に限り有効です。
「
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 がメッセージの適時性をチェックする際に検討する
クロック・スキュー値 (秒) を指定します。 |
サーバー・レベルでは、管理コンソールの
「Web サービス・セキュリティーのデフォルト・バインディング」パネルで、
nonce に対してこれらの追加プロパティーを指定することができます。
このパネルにアクセスするには、「サーバー」>「アプリケーション・サーバー」
>「server_name」とクリックします。「セキュリティー」の下の「Web サービス: Web サービス・セキュリティーのデフォルト・バインディング」をクリックします。
- オプション: 「タイム・スタンプの追加」オプションを選択します。
このオプションは、ユーザー名トークンにタイム・スタンプを挿入するかどうかを示します。
「タイム・スタンプの追加」オプションは、生成されたトークン・タイプがユーザー名トークンであり、
要求ジェネレーター・バインディングに対してのみ使用可能である場合に限り有効です。
- 「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 を使用することができます。
LTPA トークンの伝搬の場合、
値のタイプのローカル名には LTPA_PROPAGATION を使用し、値のタイプの URI には http://www.ibm.com/websphere/appserver/tokentype を使用します。
- オプション: 「URI」フィールドで値タイプ URI を指定します。
この項目は、生成されるトークンの値タイプのネーム・スペース URI を指定します。
- 「OK」および「保管」をクリックして、構成を保管します。
- トークン・ジェネレーター構成の名前をクリックします。
- 「追加プロパティー」の下の「コールバック・ハンドラー」をクリックします。
- コールバック・ハンドラーの設定を指定します。
- 「コールバック・ハンドラーのクラス名」フィールドでクラス名を指定します。
このクラス名は、セキュリティー・トークン・フレームワークにプラグインする際に使用される
コールバック・ハンドラー・インプリメンテーション・クラスの名前です。
指定したコールバック・ハンドラー・クラスは、
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
- このコールバック・ハンドラーは、ユーザー名およびパスワードを収集するための標準プロンプトを使用します。
ただし、このパネルでユーザー名およびパスワードが指定された場合、
WebSphere Application Server はプロンプトを表示しませんが、トークン・ジェネレーターにユーザー名およびパスワードを戻します。
このインプリメンテーションは、
Java 2 Platform, Enterprise Edition (J2EE) アプリケーション・クライアントに対してのみ使用してください。
このインプリメンテーションを使用する場合は、このパネルで基本認証ユーザー ID およびパスワードを指定する必要があります。
- com.ibm.wsspi.wssecurity.auth.callback.LTPATokenCallbackHandler
- このコールバック・ハンドラーは、Run As 起動 Subject から Lightweight Third Party Authentication
(LTPA) セキュリティー・トークンを取得するために使用されます。
このトークンは、バイナリー・セキュリティー・トークンとして、SOAP メッセージ内で Web サービス・セキュリティー・ヘッダーに挿入されます。
ただし、このパネルでユーザー名およびパスワードが指定される場合、
WebSphere Application Server は、Run As Subject から 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 インターフェースを使用する必要があります。
- オプション: 「ID アサーションを使用」オプションを選択します。
IBM 拡張デプロイメント記述子で ID アサーションを定義した場合は、このオプションを選択します。
このオプションは、初期送信側の ID のみが必要で、
SOAP メッセージ内の Web サービス・セキュリティー・ヘッダーに挿入されることを示します。
例えば、WebSphere Application Server は、
ユーザー名トークン・ジェネレーターの最初の呼び出し元のユーザー名のみを
送信します。X.509 トークン・ジェネレーターの場合、
アプリケーション・サーバーはオリジナルの署名者認証のみを送信します。
- オプション: 「RunAs ID を使用」オプションを選択します。
ユーザーが IBM 拡張デプロイメント記述子で ID アサーションを定義していて、
ダウンストリーム呼び出しの ID アサーションのために初期呼び出し元 ID の代わりに Run As ID を使用する場合、このオプションを選択します。
このオプションは、Username TokenGenerator をトークン・ジェネレーターとして構成した場合にのみ有効です。
- オプション: 「基本認証ユーザー ID」フィールドで、基本認証ユーザー ID を指定します。
この項目は、コールバック・ハンドラー・インプリメンテーションのコンストラクターに渡されるユーザー名を指定します。
「コールバック・ハンドラーのクラス名」フィールドで以下のデフォルトのコールバック・ハンドラー・インプリメンテーションのいずれかを選択した場合、基本認証ユーザー名およびパスワードが使用されます。
- 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 暗号化を使用することによって、保管された秘密鍵の保護をより強力にします。
- JCERACFKS
- 証明書が SAF 鍵リング (z/OS のみ) に格納される場合は、JCERACFKS を使用します。
- PKCS11KS (PKCS11)
- 鍵ストアが PKCS#11 ファイル・フォーマットを使用する場合、このフォーマットを使用します。このフォーマットを使用する鍵ストアには、
暗号ハードウェア上に RSA 鍵が含まれているか、暗号ハードウェアを使用する鍵を暗号化して保護を実行している可能性があります。
- PKCS12KS (PKCS12)
- 鍵ストアが PKCS#12 ファイル・フォーマットを使用する場合、このオプションを使用します。
- 「OK」をクリックしてから「保管」をクリックして、構成を保管します。
- トークン・ジェネレーター構成の名前をクリックします。
- 「追加プロパティー」の下で、「コールバック・ハンドラー」>「鍵」とクリックします。
- 鍵の名前、鍵の別名、および鍵パスワードを指定します。
- 「新規」をクリックして鍵構成を作成するか、「削除」をクリックして既存の構成を削除するか、
既存の鍵構成の名前をクリックして、その設定を編集します。
新規構成を作成している場合は、「鍵の名前 」フィールドに固有名を入力します。
デジタル・シグニチャーの場合、メッセージのデジタル署名に使用される鍵を判別するために、
この鍵名が要求ジェネレーターまたは応答ジェネレーターの署名情報によって使用されます。
暗号化の場合、この鍵名は、暗号化に使用される鍵を判別するために使用されます。
鍵名は、完全修飾識別名でなければなりません。
例えば、CN=Bob,O=IBM,C=US のようにします。
- 「鍵の別名」フィールドに鍵の別名を指定します。
鍵の別名は、鍵ロケーターが鍵ストア・ファイル内の鍵を探し出すときに使用されます。
- 「鍵パスワード」フィールドに鍵パスワードを指定します。
このパスワードは、鍵ストア・ファイル内の鍵オブジェクトにアクセスする際に必要です。
- 「OK」および「保管」をクリックして、構成を保管します。
結果
アプリケーション・レベルのトークン・ジェネレーターが構成されました。
次の作業
アプリケーション・レベルに対して同様のトークン・コンシューマー構成を指定する必要があります。