サービス・プログラミング・インターフェース (SPI)
Web Services Security サービス・プログラミング・インターフェース (WSS SPI) は、Web Services Security をセキュアにするためのプログラミング・インターフェースを備えています。
Web Services Security 仕様は、セキュアな Web サービスを構築するための柔軟なフレームワークを定めています。これに基づいて、メッセージ内容の完全性と機密性を実装することができます。仕様は特定のトークン・フォーマットを定義していませんが、代わりにこれらのトークンを使用するためのさまざまなセキュリティー・トークンのフォーマットおよび意味を定義する個別のプロファイル文書に関連付けられています。 この Web Services Security サービス・プログラミング・モデルは、拡張ポイントを提供して新規トークン・フォーマットと統合するための柔軟なフレームワークをサポートし、メソッドを使用してメッセージ保護に必要な鍵を取得します。 Web Services Security はこのプログラミング・モデルを使用して、標準 X.509 トークン・プロファイル、Username トークン・プロファイル、および Kerberos トークン・プロファイルのサポートを実装します。また、プログラミング・モデルは、LTPA セキュリティー・トークンおよび新規のセキュリティー・トークンのタイプのサポートを実装するためにも使用されます。
Web Services Security ランタイムのトークン生成およびトークン消費サービス・プログラミング・インターフェース (SPI) が再設計され、同じセキュリティー・トークン・インターフェースおよび JAAS ログイン・モジュール実装を WSS API および SPI の両方で使用できるようになりました。サービス・プロバイダー用の WSS SPI はセキュリティー・トークン・タイプを拡張し、署名用、シグニチャー検査用、暗号化および暗号化解除用の鍵と派生鍵を提供します。
Web Services Security サービス・プログラミング・モデルは、カスタム・セキュリティー・トークンの処理、署名および暗号化でのカスタム・トークンの使用、および暗号鍵および署名鍵の取得のメカニズムを提供します。JAX-RPC ランタイムと JAX-WS ランタイムのための Web Services Security サービス・プログラミング・インターフェースは類似していますが、同一ではありません。
JAX-RPC ランタイム
- トークン生成プログラム、KeyLocator、およびコールバック・ハンドラー
- TokenGenerator クラスは、セキュリティー・トークンの XML エレメントへのフォーマットを行います。このクラスは、TokenGeneratorConfig オブジェクトに指定された CallbackHandler クラスを呼び出し、このクラスはセキュリティー・トークンの入力データを取得してから、Subject オブジェクトの秘密クレデンシャルに結果として生成されたセキュリティー・トークンを保管します。
- トークン・コンシューマー、KeyLocator、および JAAS LoginModule
- KeyLocator クラスは、KeyStoreConfig および KeyLocatorConfig の構成によって指定された鍵ストアの SOAP メッセージ・エレメントを署名および暗号化するために必要な鍵の取得を行います。 TokenConsumer クラスは、XML セキュリティー・トークン表現からトークン・データを抽出しJAAS LoginModule を使用してそれを JAAS Subject に保存します。指定された KeyLocator クラスは、デジタル署名の検証と SOAP メッセージ・エレメントの暗号化解除に必要な鍵を見つけるために呼び出されます。
JAX-WS ランタイム
JAX-WS ランタイムのプラグイン・プログラミング・インターフェースは、インバウンドとアウトバウンドの両方の SOAP メッセージ処理のための JAAS プログラミング・モデルに基づいています。JAAS LoginModule および CallbackHandler は、SOAP メッセージ内のセキュリティー・トークンの処理を行います。 ログイン・モジュールとコールバック・ハンドラーの両方が、トークンを検索して生成し、実行時に SecurityToken オブジェクトを保管します。これらは、TokenGenerator、TokenConsumer、および KeyLocator インターフェースの機能を置き換えます。
プログラミング・モデルの違いにより、WebSphere® Application Server または Web Services Security バージョン 6.1 ランタイムのカスタム SPI の実装で、Web Services Security ランタイムバージョン 6.1 Feature Pack for Web Services、または バージョン 7.0 以降の Web Services Security ランタイムの実行はサポートされていません。ただし、Web Services Security バージョン 6.1 ランタイムは バージョン 6.1 Feature Pack for Web Services と同時にサポートされます。つまり、バージョン 6.1 SPI 実装は、オリジナルのランタイムにより、引き続きサポートされています。 新しい Web Services Security ランタイムを使用する前に、バージョン 6.1 DOM ベースの SPI を Feature Pack for Web Services の AXIOM ベースの SPI に再プログラムするためにコードのマイグレーションを行ってから、SPI を使用する必要があります。