保護対象のリソース

保護するリソースを決定するときは、URL マッピングがあり、Rich UI アプリケーション がアクセスする、すべての構成要素を検討してください。

生成された HTML ファイル

EGL では、Rich UI アプリケーション を HTML ファイルに生成します。HTML ファイルは、デプロイされたプロジェクトの WebContent フォルダー (または 、WebContent フォルダー内のサブフォルダー) に生成されます。HTML ファイルが保護されている ときは、その HTML ファイル内に定義されている Rich UI アプリケーションにアクセスする前に 認証する必要があります。JEE 認証を使用すると、HTML ファイル全体を保護できます。 カスタム・セキュリティーを使用すると Rich UI アプリケーションの 機密領域を限定できます。

EGL Rich UI プロキシー

EGL Rich UI プロキシーは、EGL が Rich UI アプリケーションのために生成する HTML ファイルと Web サービス間の通信を処理します。JavaScript™ の同一生成元ポリシーのために、HTML ファイルでは、その HTML ファイルと生成元 (プロトコル、ドメイン、およびポートとして定義) が異なる Web サービスを呼び出すことができません。異なる生成元にある Web サービスにアクセスするために、HTML ファイルでは、EGL Rich UI プロキシーと呼ばれる Java™サーブレットを使用します。 Rich UI アプリケーション内で呼び出されるすべての Web サービスが、このプロキシーを介して アクセスされます。

EGL Rich UI プロキシー・サーブレットはタイプが com.ibm.javart.services.RestServiceServlet で、EGL ランタイムに付属し、fda7.jar にあります。このサーブレットは、生成される HTML ファイルと 同じプロジェクトにデプロイされます。HTML ファイルはブラウザー内で実行されますが 、EGL Rich UI プロキシーは、アプリケーション・サーバー上で実行されます。

EGL Rich UI プロキシー の URL は、Rich UI アプリケーションのために EGL が生成する JavaScript内で可視であるため、その Rich UI のクライアント以外がこのプロキシーを使用して Web サービス を呼び出すことを防ぐ必要があります。プロキシーをセキュアでないままにした場合は、JavaScriptハイジャック・アタックを招きかねません。Rich UI アプリケーションで EGL Rich UI プロキシーを使用しない場合 (つまり、そのアプリケーションで Web サービスを呼び出さない場合) は、デプロイされたプロジェクトから、プロキシーへのアクセスを除去してください。 詳しくは、『EGL Rich UI プロキシー・サーブレットへのアクセスの除去』を参照してください。また、JEE 基本認証を使用すると、非認証クライアントによるプロキシーの呼び出しを 防ぐことができます。この処置によって Web の脅威からの保護が保証されるわけではあり ませんが、事象の発生を低減できます。

HTML ファイルと EGL Rich UI プロキシーの両方を保護しているときは、HTML ファイル にアクセスする前のみに、認証が必要です。EGL Rich UI プロキシーを保護しており、HTML ファイルは保護していないときは、プロキシーにアクセスする前 (つまり、アプリケーションがプロキシーを介して呼び出される Web サービスを呼び出す前) に認証が必要です。

EGL Web サービス

HTTP 基本認証を介した JEE セキュリティーを使用 すると、Web プロジェクト内に生成される EGL Web サービスを保護できます。 HTTP 基本認証では、有効なユーザー ID とパスワードを HTTP ヘッダーに含めて渡す ことにより、セキュア Web サービスにアクセスします。EGL では、これらの値をヘッダーに設定するシステム関数 setHTTPBasicAuthentication を ServiceLib に含めて提供しています。 セキュア Web サービスに対する各呼び出しに、setHTTPBasicAuthentication の呼び出し を先行させてください。

機密漏れを防ぐために、ユーザー ID およびパスワードを決して Rich UI アプリケーションにハードコーディングしないでください。Rich UI アプリケーションでは、 その代わりに、setHTTPBasicAuthentication に渡す値のプロンプトをユーザーに出す、ユーザー定義 のログイン画面を表示する必要があります。取得したパスワードは、 Rich UI ハンドラーまたはライブラリーに保存して、以降の Web サービス呼び出しで 使用できます。Web サービスに渡す、異なる資格情報の組み合わせが必要なときは、必ずユーザーに再度プロンプトを出す必要があります。


フィードバック