鍵ロケーターは、デジタル署名および暗号化の鍵を検索するメカニズムの抽象概念です。 Java 認証・許可サービス (JAAS) ログイン・モジュールの実装は、ジェネレーター側でセキュリティー・トークンを作成し、コンシューマー側でそのセキュリティー・トークンを検証 (認証) するために使用されます。
WebSphere Application Server バージョン 6 以降は、HMAC-SHA1 と呼ばれる秘密鍵ベースのシグニチャーをサポートします。 HMAC-SHA1 を使用する場合は、SOAP メッセージはバイナリー・セキュリティー・トークンを含みません。 この場合、メッセージ内の鍵情報は、鍵ストア内の秘密鍵を指定するために使用される鍵名を含みます。
鍵ロケーターは公開鍵ベースのシグニチャーをサポートするため、検証用の鍵は、 着信メッセージ内の <BinarySecurityToken> エレメントとして X.509 証明書に組み込まれます。 例えば、鍵ロケーターは、応答の暗号化のために、コンテキストから呼び出し元の ID を取得したり、 呼び出し元の公開鍵を検索することができます。
このセクションでは、鍵ロケーターの使用法シナリオについて説明します。
署名
署名鍵の名前は、Web サービス・セキュリティー構成で指定されます。 この値が鍵ロケーターに渡され、実際の鍵が戻されます。 対応する X.509 証明書も戻されます。
検査
暗号化
暗号化鍵の名前は、Web サービス・セキュリティー構成で指定されます。 この値が鍵ロケーターに渡され、実際の鍵が戻されます。 サーバー・サイドでは、SignerCertKeyLocator を使用して、要求メッセージ内の X.509 証明書から応答メッセージ内の暗号化のための鍵を検索することができます。
暗号化解除
Web サービス・セキュリティー仕様では、 鍵名の代わりに鍵 ID を使用することを推奨しています。 しかし、公開鍵の ID を計算するためのアルゴリズムが Internet Engineering Task Force (IETF) Request for Comment (RFC) 3280 で定義されているのに対し、 秘密鍵用の承認されたアルゴリズムはありません。 したがって、Web サービス・セキュリティーの現行インプリメンテーションでは、 公開鍵ベースの暗号化が実行される場合に限り、ID が使用されます。 それ以外の場合には、通常の鍵名が使用されます。
公開鍵ベースの暗号化を使用する場合、 鍵 ID の値が着信暗号化メッセージに組み込まれます。 その後、Web サービス・セキュリティー・インプリメンテーションは、 鍵ロケーターで管理されるすべての鍵を検索し、ID 値がメッセージ内の ID 値に一致する鍵を 使用してメッセージを暗号化解除します。
秘密鍵ベースの暗号化を使用する場合、 鍵名の値が着信暗号化メッセージに組み込まれます。 Web サービス・セキュリティー・インプリメンテーションは、 鍵ロケーターに対して、名前がメッセージ内の名前に一致する鍵を要求し、 その鍵を使用してメッセージを暗号化解除します。