WebSphere Application Server for z/OS, Version 6.0.x   
             オペレーティング・システム: z/OS

             目次と検索結果のパーソナライズ化

Web サービス・セキュリティーと Java 2 Platform, Enterprise Edition セキュリティーの関係

この項では、Web サービス・セキュリティー (メッセージ・レベルのセキュリティー) モデルと Java 2 Platform, Enterprise Edition (J2EE) セキュリティー・モデルとの関係について説明します。また、J2EE の役割ベースの許可検査に関する情報も含まれています。

重要: バージョン 5.x とバージョン 6 以降のアプリケーションには重要な相違点があります。この資料の情報は、WebSphere Application Server バージョン 6.0.x 以降で使用されるバージョン 5.x アプリケーションのみをサポートしています。この情報はバージョン 6.0.x 以降のアプリケーションには適用されません。

WebSphere Application Server は、 Java Specification Requests (JSR) 101 および JSR 109 をサポートします。 JSR 101 および 109 は、 J2EE アーキテクチャー向けの Web サービスを定義します。 これにより、J2EE コンポーネント・アーキテクチャーで Web サービスを開発および実行することができます。

重要:Web サービス・セキュリティー」とは、Web サービス・セキュリティー: SOAP メッセージ・セキュリティー仕様を指します。詳しくは、Web サービス・セキュリティーのサポート を参照してください。

WebSphere Application Server セキュリティー (J2EE 役割ベースのセキュリティー) による Web サービスの保護

Web サービスは、WebSphere Application Server の既存の セキュリティー・インフラストラクチャーである J2EE 役割ベースのセキュリティー、 および Secure Sockets Layer (SSL) トランスポート・レベルのセキュリティーを使用して保護できます。
図 1. WebSphere Application Server の既存のセキュリティー・インフラストラクチャーを使用した SOAP のメッセージ・フロー

Web サービス・ポートは、J2EE 役割ベースのセキュリティーを使用して保護できます。 Web サービスの送信側は、HTTP ヘッダーを使用して基本認証データを送信します。 SSL (HTTPS) を使用すると、トランスポートを保護できます。 WebSphere Application Server が SOAP メッセージを受け取ると、 Web コンテナーはユーザー (この例では user1) を認証し、 呼び出しのためのセキュリティー・コンテキストを設定します。 セキュリティー・コンテキストが設定されると、 SOAP ルーター・サーブレットは、Web サービスのインプリメンテーションに要求を送信します (インプリメンテーションは、JavaBeans またはエンタープライズ Bean ファイルのどちらでも可)。 エンタープライズ Bean インプリメンテーションの場合 、EJB コンテナーは user1 の ID に対して許可検査を実行します。

Web サービス・ポートは、J2EE 役割を使用して保護することもできます。 次に、SOAP 要求が Web サービス・インプリメンテーションにディスパッチされる前に 、Web コンテナーによって許可が実行されます。

Web サービス・セキュリティーによるメッセージ・レベルでの Web サービスの保護

Web サービス・セキュリティーを使用して、メッセージ・レベルで Web サービスを保護することもできます。 この場合、メッセージの特定部分に対するデジタル署名や暗号化が可能になります。 Web サービス・セキュリティーは、SOAP メッセージ内でのセキュリティー・トークンの伝搬もサポートします。 次のシナリオでは、Web サービス・ポートが J2EE 役割ベースのセキュリティーでは保護されておらず、エンタープライズ Bean が J2EE 役割ベースのセキュリティーで保護されていることを前提としています。

図 2. Web サービス・セキュリティーを使用した SOAP のメッセージ・フロー

この場合、Web サービス・ポートは、 J2EE 役割ベースのセキュリティーでは保護されていません。 Web サービス・エンジンは、クライアントが Web サービス・ポートにメッセージを送信する前に、 SOAP メッセージを処理します。 Web サービス・セキュリティー・ランタイムは、 セキュリティー制約に従って、SOAP ヘッダー内のセキュリティー・トークンのデジタル署名、 暗号化、または生成 (および挿入) などを行います。 この場合、user1 とパスワードを使用して <wsse:UsernameToken> が生成されます。 サーバー・サイド (受信側) では、Web サービスは着信メッセージを処理し 、Web サービス・セキュリティーはセキュリティー制約に従って処理を行います。 この実行内容には、メッセージに対する適切な署名、 適切な暗号化および暗号化解除、セキュリティー・トークンの認証、および 認証済みの ID によるセキュリティー・コンテキストのセットアップが含まれます。 (この場合、user1 は認証済みの ID です。) 最後に、SOAP メッセージが Web サービス・インプリメンテーションにディスパッチされます (インプリメンテーションがエンタープライズ Bean ファイルである場合は、Enterprise JavaBeans (EJB) コンテナーが user1 に対して許可検査を実行します)。SSL をこのシナリオで使用することもできます。

2 つのシナリオの混合

2 番目のシナリオでは 、Web サービス・セキュリティーが J2EE 役割ベースのセキュリティーを補完できることを示します。 例えば、SSL をトランスポート・レベルで使用可能にして、セキュアなチャネルを提供することができます。 さらに、Web サービス・インプリメンテーションがエンタープライズ Bean ファイルである場合は、 許可検査を実行することにより、EJB 役割ベースの認証を利用することができます。 Web サービス・セキュリティー・ランタイムは、 セキュリティー・インフラストラクチャーを活用して、 セキュリティー・コンテキストに認証済みの ID を設定できます。 認証済みの ID は、J2EE リソース (または他のリソース・タイプ) へのダウンストリーム呼び出しで使用できます。

2 つのシナリオを結合すると微妙な結果になります。 例えば、HTTP トランスポートが、HTTP ヘッダー内に user1 とパスワードを持つ基本認証データを送信している場合は、user99 および letmein とともに <wsse:UsernameToken> も SOAP ヘッダーに 挿入されます。 前のシナリオでは、2 つの認証が実行されています。 一方の認証は Web コンテナーが user1 の認証用に実行し、 もう一方の認証は Web サービス・セキュリティーが user99 の認証用に実行します。 Web サービス・セキュリティー・ランタイムは、 Web コンテナーが実行されてから稼働し、 user99 はセキュリティー・コンテキストに設定される認証済みの ID です。

Web サービス・セキュリティーは、SOAP の送信側から受信側 に Java Message Service (JMS) 経由でセキュリティー・トークンも伝搬します。

J2EE 役割ベースの許可検査

Web サービスには標準的な許可は存在していません。 ただし、IBM は Microsoft Corporation と共同で、Security in a Web Services World: A Proposed Architecture and Roadmap という Web サービスのセキュリティー白書ロードマッ プを公開しました。この中には WS-Authorization 仕様に対する提案がなされています。 しかし、WS-Authorization 仕様はまだ公表されていません。

既存の Web サービス・セキュリティーのインプリメンテーションは、J2EE 仕様または Java Specification Requirements (JSR) 109 仕様の Web サービスに基づいています。 Web サービス・セキュリティーのインプリメンテーションは、J2EE 役割ベースの許可検査を利用します。 役割ベースの許可に関する概念的な情報については、役割ベースの許可 を参照してください。 メソッド・レベルの許可検査が必要な Web サービスを開発する場合は、ステートレス・セッション Bean を使用して Web サービスをインプリメントする必要があります。 ステートレス・セッション Bean を使用した Web サービスのインプリメントについて詳しくは、エンタープライズ Bean からの Web サービスの開発 および エンタープライズ Bean アプリケーションの保護 を参照してください。サーブレットとしてインプリメントされる Web サービスを開発する場合は、簡単な許可または URL ベースの許可を Web コンテナーで使用することができます。 ただし、そのような状況においては、許可検査のために Web サービス・セキュリティーの ID を使用することはできません。 代わりに、トランスポートの ID を使用することができます。 HTTP 経由で SOAP を使用する場合、ID は HTTP トランスポートにあります。




関連概念
Web サービス・セキュリティー仕様の年表
WebSphere Application Server における Web サービス・セキュリティー・モデル
役割ベースの許可
関連タスク
エンタープライズ Bean からの Web サービス・アプリケーションの開発
エンタープライズ Bean アプリケーションの保護
WS-Security を基にしたバージョン 5.x アプリケーションの Web サービスの保護
関連資料
Web サービス・セキュリティーのサポート
概念トピック    

ご利用条件 | フィードバック

最終更新: Jan 21, 2008 10:52:11 PM EST
http://publib.boulder.ibm.com/infocenter/wasinfo/v6r0/index.jsp?topic=/com.ibm.websphere.zseries.doc/info/zseries/ae/cwbs_wssecurityj2ee.html