WebSphere Application Server バージョン 6 以降のバージョンには、Web サービスを保護するための機能強化がいくつも含まれています。 ポリシー・セット、または定義されたサービスについての表明を使用すると、Web サービスのセキュリティー構成を簡素化することができます。
WebSphere Application Server によってのみ使用される Web サービス・セキュリティー・ランタイム実装は、IBM Web Service ランタイムに基づいています。同様に、IBM Web サービス・ランタイムは、IBM 拡張機能を搭載したオープン・ソースの Axis Web Service エンジンに基づいています。 アプリケーション・プログラミング・モデルは JAX-RPC (JSR-109) です。オープン・ソースの Axis Web Service エンジンは、文書オブジェクト・モデルとして DOM を使用します。
アプリケーションをアセンブルし 、デプロイメント記述子およびバインディングで Web サービス・セキュリティーのセキュリティー制約を指定するには、アセンブリー・ツー ルを使用することが推奨されます。 また WebSphere Application Server 管理コンソールを使用して、 アプリケーション・バインディング・ファイルを編集することもできます。
IBM WebSphere Application Server バージョン 6.1 Feature Pack for Web Services では、WebSphere Application Server も別の Web Service Security ランタイム (Java API for XML Web Service (JAX-WS) プログラミング・モデルおよび更新された SAAJ プログラミング・モデルに基づく、新しいランタイム) を使用します。デプロイメント記述子およびバインディングの代わりに、構成にはポリシー・セットが使用されます。
この JAX-WS プログラミング・モデルは基本的に、IBM Web サービス・ランタイム実装および、以前のバージョンの WebSphere Application Server で使用されるアプリケーション・プログラミング・モデル JAX-RPC (JSR-109) とは異なっています。
新規の機能拡張には、異なるメッセージ交換パターン、非同期メソッド呼び出し、AXIOM データ・モデルなどをサポートする柔軟性が含まれています。
IBM WebSphere Application Server バージョン 6.1 Feature Pack for Web Services では、ポリシー・セットを使用して Web サービスのサービスの品質の構成を簡素化することができます。
IBM WebSphere Application Server バージョン 6.1 Feature Pack for Web Services では、Web Services Security Trust (WS-Trust) は、Web Services Secure Conversation (WS-SecureConversation) のセキュリティー・コンテキスト・トークンをエンドポイントが発行するための機能を提供します。 トークン発行のサポートは、セキュリティー・コンテキスト・トークンに限定されます。 トラスト・ポリシー管理は、トークンの発行、取り消し、検証、および更新などの各トラスト・サービス操作のポリシーを定義します。 クライアントのブートストラップ・ポリシーは、WebSphere Application Server のトラスト・サービス・ポリシーに対応している必要があります。
IBM WebSphere Application Server バージョン 6.1 Feature Pack for Web Services では、Web Services Secure Conversation が長いメッセージ交換のセキュアなセッションを提供し、対称暗号アルゴリズムを利用します。 WS-SecureConversation は、Web サービス・セキュリティー高信頼性メッセージング (WS-ReliableMessaging) などのセッション・ベースのメッセージ交換パターンを保護するための基本セキュリティーを提供します。対称暗号アルゴリズムは、非対称暗号アルゴリズムに比べ、パフォーマンスとスループットに優れています。
シグニチャーの確認は XML デジタル・シグニチャー・セキュリティーを拡張し、よりセキュアなメッセージ・レベルのセキュリティーを提供します。 SignatureConfirmation エレメントは、応答側が要求内の署名を処理したことを示し、シグニチャーの確認は、その署名が意図した受信者により確かに処理されたことを保証します。 シグニチャーの確認を正しく処理するには、要求のイニシエーターが要求生成処理中にシグニチャーを保存し、後で確認チェックのためにシグニチャーを取り出す必要があります。これは、Web サービスがステートレスな性質のものであっても、また、異なるメッセージ交換パターンの場合にも当てはまります。 ポリシーを構成して、シグニチャーの確認を使用可能にします。
暗号化ヘッダー・エレメントは SOAP ヘッダーを暗号化するための標準的な方法 (インターオペラビリティーに役立ちます) を提供します。 Organization for the Advancement of Structured Information Standards (OASIS) SOAP メッセージ・セキュリティー仕様の拡張機能の 1 つとして、EncryptedHeader エレメントは特定の SOAP ヘッダー (またはヘッダー・セット) が保護される必要があることを示します。SOAP のヘッダーおよびパーツの暗号化により、よりセキュアなメッセージ・レベルのセキュリティーを提供できます。 EncryptedHeader エレメントは SOAP mustUnderstand 処理ガイドラインへの準拠を保証し、SOAP ヘッダー・ブロック上の属性に含まれる情報の開示を防ぎます。
OASIS Web サービス・セキュリティー仕様ではセキュリティー・トークンを SOAP メッセージに関連付けるための汎用メカニズムを定義しています。 WebSphere Application Server では、プラグ可能トークン・フレームワークが、この柔軟なメカニズムを扱うように強化されています。 プラグ可能トークン・フレームワークが再設計され、セキュリティー・トークンの作成と検証に使用されているのと同じ実装で Web サービス・セキュリティー・ランタイムでも使用できるようになりました。再設計されたフレームワークはプログラミング・モデルを簡素化し、新規セキュリティー・トークン・タイプまたはカスタム・セキュリティー・トークン・タイプを簡単に追加できるようになりました。
以下のシナリオで、ユーザー名トークンの作成方法とユーザー名トークンの検証方法について、簡単に説明しています。
OASIS Web サービス・セキュリティー (WS-Security) バージョン 1.1 サポートは、SOAP ヘッダーの暗号化と署名の標準的な方法を提供しています。IBM WebSphere Application Server バージョン 6.1 Feature Pack for Web Services では、SOAP メッセージの署名または暗号化をするために、QName を指定して SOAP メッセージの SOAP ヘッダーでヘッダー・エレメントを選択します。
管理コンソールまたは Web サービス・セキュリティー API (WSS API) を使用して、署名または暗号化用のポリシー・セットを構成できます。
Web Services Security バージョン 1.0 の振る舞いでは、バインディングの EncryptionInfo 内にある com.ibm.ws.wssecurity.encryptedHeader.generate.WSS1.0 プロパティーに true の値を指定します。このプロパティーを指定すると EncryptedData エレメントになります。
Lightweight Third Party Authentication (LTPA) は、 Web サービス・セキュリティーではバイナリー・セキュリティー・トークンとしてサポートされています。 トークン・タイプは、http://www.ibm.com/websphere/appserver/tokentype/5.0.2/LTPA にあります。
署名処理の際に、 タイム・スタンプを Web サービス・セキュリティー・ヘッダー以外の他のエレメントに挿入することができます。 このタイム・スタンプは、 エレメントに時間制限を追加するメカニズムを提供します。 このサポートは、WebSphere Application Server の拡張機能です。他のベンダー・インプリメンテーションでは、 追加のタイム・スタンプが挿入された状態で生成されるメッセージを利用する機能がない可能性があります。
ランダムに生成された値である nonce を、ユーザー名トークン以外の他のエレメントに挿入することができます。 nonce は、リプレイ・アタックの可能性を減少させるために使用されます。 このサポートは、WebSphere Application Server の拡張機能です。他のベンダー・インプリメンテーションでは、ユーザー名トークン以外のエレメントに挿入された nonce 付きのメッセージを利用する機能がない可能性があります。
分散 nonce キャッシングは、 WebSphere Application Server バージョン 6 以降における Web サービスの新しいフィーチャーです。 これにより、nonce データをクラスター内のサーバー間で複製することができます。 例えば、アプリケーション・サーバー A とアプリケーション・サーバー B がクラスター C 内にあるとします。 アプリケーション・サーバー A が値 X を持つ nonce を受信し、 アプリケーション・サーバー B が、指定された時間内に同じ値を持つ nonce を受信した場合、 アプリケーション・サーバー B は SoapSecurityException を作成します。
WebSphere Application Server バージョン 6 以降は、 デフォルトでは、受信した X.509 証明書をキャッシュに入れて、 証明書パス検証を回避し、パフォーマンスを向上させます。 ただし、この変更は、機密漏れを招く可能性があります。 ユーザーは、以下のステップを使用して X.509 証明書のキャッシングを使用 不可にすることができます。