標準およびプロファイルは、Web サービス環境で交換されるメッセージの保護方法を規定します。 Web サービス・セキュリティーは、メッセージ・レベルの標準です。 この標準は、XML デジタル・シグニチャーによる SOAP メッセージの保護、XML 暗号化による機密性、 およびセキュリティー・トークンを使用したクレデンシャル伝搬を基にしています。
Web サービスを保護するには、アプリケーションとビジネス・トポロジーの範囲に渡る認証、許可、プライバシー、信頼、保全性、機密性、保護通信チャネル、代行、および監査を含めた、一連の広範囲なセキュリティー要件を検討する必要があります。 今日のビジネス環境におけるセキュリティー・モデルの主な要件の 1 つとして、異種の環境において、 以前は非互換であったセキュリティー・テクノロジー間で相互運用を行う機能が必要とされています。 完全な Web サービス・セキュリティー・プロトコル・スタックおよびテクノロジー・ロードマップは、 Web サービスのロードマップに記載されています。
Organization for the Advancement of Structured Information Standards (OASIS) Web Services Security: SOAP Message Security バージョン 1.1 仕様はすべての Web サービスに対する基本メッセージング・トランスポートです。 SOAP 1.2 では拡張機能が既存の SOAP 1.1 の拡張機能に追加されているため、 セキュア Web サービスをビルドすることができます。 添付を SOAP メッセージに追加するには、SOAP with Attachments (SWA) プロファイルの代わりに、 Message Transmission Optimization Mechanism (MTOM) および XML-binary Optimized Packaging (XOP) を使用します。
OASIS Web Services Security (WS-Security) バージョン 1.1 仕様は、 他の Web サービスおよびアプリケーション固有のプロトコルと一緒に使用されて、広範囲のセキュリティー・モデルに対応する、ビルディング・ブロックです。 WebSphere Application Server の Web サービス・セキュリティーは、 OASIS Web Services Security バージョン 1.1 仕様およびプロファイルに含まれている特定の標準に基づいています。
バージョン 1.1 仕様は、メッセージの保全性と機密性を保護するための追加機能を定義しています。 バージョン 1.1 仕様は、セキュリティー関連の要求をメッセージと関連付けるためのメカニズムも提供します。 WebSphere Application Server がサポートする Web Services Security バージョン 1.1 規格には、 署名確認、暗号化ヘッダー・エレメント、ユーザー名トークン・プロファイル、および X.509 トークン・プロファイルが含まれています。ユーザー名トークン・プロファイルと X.509 トークン・プロファイルは、 バージョン 1.1 プロファイルとして更新されました。 X.509 証明書トークン・プロファイルの場合、セキュリティー・トークン参照の新しいタイプの 1 つとして、 Thumbprint 参照があります。これはバインディングで指定されます。
XML スキーマのパート 1 とパート 2 は、仕様書であり、XML 文書にスキーマを編成する方法について説明しています。 WS-Security バージョン 1.0 の 2 つのスキーマは バージョン 1.1 仕様に更新され、さらに新しい バージョン 1.1 スキーマが追加されました。 バージョン 1.1 スキーマはバージョン 1.0 スキーマに置き換わるものではなく、バージョン 1.1 ネームスペース内に追加の機能セットを定義することにより、バージョン 1.0 スキーマ上に構築されます。
このメソッドは、ポリシー・セットに定義されているブートストラップ・ポリシーを使用します。 ポリシー・セットか、またはサービスの定義方法に関するアサーションを使用して、 Web サービスのセキュリティー構成を簡素化します。 管理コンソールを使用してカスタム・ポリシー・セットを作成、変更、および削除することができます。 一連のデフォルト・ポリシー・セットが使用可能です。
例えば、ブートストラップ・ポリシーをポリシー・セットに定義して、 Web Services Trust (WS-Trust) SOAP メッセージを保護することができます。
また、管理コンソールを使用して、ポリシー・セット管理タスクを実行し、 暗号化、署名情報、およびセキュリティー・トークンを使用する Web サービスを保護することができます。
WebSphere Application Server は、新規の API プログラミング・モデルを使用します。 既存の JAX-RPC プログラミング・モデルに加えて、新規プログラミング・モデル、 Java API for XML Web Services (JAX-WS) が追加されました。 JAX-WS 2.0 プログラミング標準は、文書中心のメッセージング・モデルに対応して、 Java API for XML-based RPC (JAX-RPC) 仕様によって定義されたリモート・プロシージャー・コールのプログラミング・モデルを置換します。
例えば、アプリケーションは、システム・ポリシー・セットを作成し、次に WebSphere Application Server WSS API を使用して、プログラマチック API ベースの Web Services Secure Conversation (WS-SecureConversation) 向けセキュリティー・コンテキスト・トークンを取得します。
また、管理コンソールを使用して、WSS API が Web サービスを保護するために実行する、 暗号化タスク、署名タスク、およびトークン構成タスクを実行することもできます。
以下のハイレベル・ステップでは、 WSS API を使用して WS-Security を使用し、SOAP メッセージを保護するために、 WebSphere Application Server を構成する方法を記述しています。 以下のステップで説明するジェネレーター・タスクとコンシューマー・タスクは、 WS-Security バージョン 1.0 と 1.1 を使用します。
ジェネレーター側の 要求のメッセージ保護には、さまざまなメッセージ・パーツを 指定できます。デフォルトの必須パーツは、 BODY、ADDRESSING_HEADERS、および TIMESTAMP です。
WSSSignature API では、メッセージ保護用のシグニチャーで使用される 各種のアルゴリズム方式も指定されます。デフォルトのシグニチャー方式は RSA_SHA1 です。デフォルトの正規化方式は EXC_C14N です。
デフォルトの署名済みパーツは、WSSSignature.BODY、WSSSignature.ADDRESSING_HEADERS、 および WSSSignature.TIMESTAMP です。
WSSSignPart API では、署名済みパーツを追加または変更した場合に使用される 各種のアルゴリズム方式も指定されます。デフォルトのダイジェスト方式は SHA1 です。デフォルトの変換方式は TRANSFORM_EXC_C14N です。 例えば、デフォルト値の SHA1 の代わりに SHA256 のダイジェスト方式を使用して SOAP メッセージのシグニチャーを生成する場合は、WSSSignPart API を使用します。
ジェネレーター側の暗号化情報は、要求ジェネレーター (クライアント・サイド) バインディングの 発信 SOAP メッセージを暗号化するために使用されます。 暗号化のデフォルト・ターゲットは、 BODY_CONTENT と SIGNATURE です。
WSSEncryption API では、 メッセージの機密性保護に使用される各種のアルゴリズム方式も 指定されます。デフォルトのデータ暗号化方式は AES128 です。デフォルトの鍵暗号化方式は KW_RSA_OAEP です。
例えば、データ暗号化方式をデフォルト値の AES128 から TRIPLE_DES へ変更する場合です。
暗号化されたパーツでは、 アルゴリズム方式は不要です。
セキュリティー・トークンの要件はトークン・タイプによって異なります。JAAS ログイン・モジュールと JAAS CallbackHandler は、ジェネレーター側でセキュリティー・トークンを作成します。さまざまなスタンドアロン・トークンを要求および応答で送信できます。 デフォルトのトークンは X509Token です。署名に使用できる他のトークンは、 DerivedKeyToken です。これは Web Services Secure Conversation (WS-SecureConversation) でのみ使用できます。
コンシューマー側の応答のメッセージ保護には、さまざまなメッセージ・パーツを 指定できます。検証用の必須ターゲットは、BODY、ADDRESSING_HEADERS、および TIMESTAMP です。
WSSVerification API では、 シグニチャーの検証やメッセージ保護に使用される各種のアルゴリズム方式も 指定されます。デフォルトのシグニチャー方式は RSA_SHA1 です。デフォルトの正規化方式は EXC_C14N です。
WSSVerifyPart API では、 検証パーツを追加または変更した場合に使用される各種のアルゴリズム方式も 指定します。デフォルトのダイジェスト方式は SHA1 です。デフォルトの変換方式は TRANSFORM_EXC_C14N です。
コンシューマー側の暗号化解除情報は、 着信 SOAP メッセージの暗号化解除に使用されます。暗号化解除のターゲットは、BODY_CONTENT と SIGNATURE です。デフォルトの鍵暗号化方式は KW_RSA_OAEP です。
暗号化解除では、 アルゴリズム方式は不要です。
例えば、データ暗号化方式をデフォルト値の AES128 から TRIPLE_DES に変更する場合です。
暗号化解除されたパーツには、 アルゴリズム方式は不要です。
セキュリティー・トークンの要件はトークン・タイプによって異なります。 JAAS ログイン・モジュールと JAAS CallbackHandler は、コンシューマー側で セキュリティー・トークンを検証 (認証) する場合に使用します。さまざまなスタンドアロン・トークンを要求または応答で送信できます。
WSS API は、暗号化解除に使用される トークン候補の情報を追加します。デフォルトのトークンは X509Token です。
このメソッドを使用することにより、コマンド行からポリシー・セットの作成、管理、および削除を行うことができます。あるいは、スクリプトを作成してタスクを自動化することができます。 wsadmin ツールと、 PolicySetManagement コマンド・グループを使用して、デフォルトのポリシー・セットの管理、カスタム・ポリシー・セットの作成、ポリシーの構成、および添付とバインディングの管理を行うことができます。 詳しくは、インフォメーション・センターのポリシー・セット・スクリプトのトピックを参照してください。
WebSphere Application Server で Web サービスを保護するには、 ジェネレーターとコンシューマーのセキュリティー制約を構成する必要があります。 いくつかの異なる構成を指定する必要があります。 これらの異なる構成を指定する特定の順序はありませんが、 一部の構成は他の構成を参照します。 例えば、暗号化解除構成は、暗号化構成を参照します。
WebSphere Application Server のこれらのハイレベル・ステップを完了すると、 ポリシー・セットを構成することにより、また、WSS API を使用して、暗号化と暗号化解除、シグニチャーとシグニチャー検証情報、およびコンシューマー・トークンとジェネレーター・トークンを構成することにより、Web サービスが保護されます。