始める前に
Web クライアントまたは Web ブラウザーは、以下のメカニズムのいずれかを
使用して、Web サーバーへのユーザー認証を行うことができます。
- HTTP 基本認証: Web サーバーが Web クライアントに認証を
要求し、Web クライアントは HTTP ヘッダーでユーザー ID とパスワードを渡します。
- HTTPS クライアント認証: このメカニズムでは、ユーザー (Web クライアント) が
公開鍵証明書を所有している必要があります。Web クライアントは、この証明書を
クライアント証明書を要求する Web サーバーに送信します。
この認証メカニズムは強力で、HTTPS プロトコルを使用します。
- フォーム・ベースの認証: 開発者は、この認証メカニズムを使用して、
ログイン画面のルック・アンド・フィールを制御します。
HTTP 基本認証では、ユーザー・パスワードを単純な base64 エンコード方式
で Web クライアントから Web サーバーに伝送します。フォーム・ベースの認証では、
ユーザー・パスワードをプレーン・テキストでブラウザーから Web サーバーに伝送します。
したがって、HTTP 基本認証もフォーム・ベースの認証も、HTTPS プロトコルが使用されない限り、
それほど安全であるとは言えません。
Web アプリケーションのデプロイメント記述子には、
使用する認証メカニズムに関する情報が含まれています。
フォーム・ベースの認証が使用される場合、デプロイメント記述子には、
ログイン・ページとエラー・ページ用のエントリーも含まれます。
ログイン・ページは、HTML ページか JavaServer Pages (JSP) ファイルのいずれかです。
このログイン・ページは、セキュア・リソース
(サーブレット、JSP ファイル、HTML ページ) にアプリケーションからアクセスする場合
に、Web クライアント・サイドに表示されます。
認証に失敗すると、エラー・ページが表示されます。
アプリケーションのニーズに合ったログイン・ページやエラー・ページを作成し、
それらのページのルック・アンド・フィールを制御することができます。
アプリケーションのアセンブリー時に、アセンブラーはそのアプリケーションの
認証メカニズムを設定して、デプロイメント記述子でログイン・ページおよび
エラー・ページを設定することができます。
フォーム・ログインでは、サーブレット sendRedirect メソッドを使用します。
このメソッドは、ユーザーにいくつかの影響を及ぼします。
sendRedirect メソッドは、フォーム・ログインの際に、以下のように 2 回使用されます。
- sendRedirect メソッドは、まずフォーム・ログイン・ページを Web ブラウザーに表示します。
このメソッドは、後で Web ブラウザーを、最初に要求した保護ページにリダイレクトします。
sendRedirect(String URL) メソッドは、
Web アドレスで指定されるページの取得に HTTP GET 要求を使用するよう Web ブラウザーに通知します。
HTTP POST が保護サーブレットまたは JavaServer Pages (JSP) ファイルへの最初の要求であり、
以前に認証またはログインが行われていない場合は、HTTP POST は要求されたページに送達されません。ただし、
HTTP GET は配信されます。これは、フォーム・ログインが、
ログイン後に要求されたページを表示しようとする HTTP GET 要求として動作する sendRedirect メソッドを使用するためです。
- HTTP POST を使用していると、次のようなシナリオを経験することがあります。
このシナリオでは、無保護 HTML フォームがデータをユーザーから収集し、
そのデータを処理するよう保護サーブレットまたは JSP ファイルに通知しますが、
ユーザーはそのリソースに対してはログインしていないのです。
このシナリオを予防するには、
アプリケーションが保護サーブレットまたは JSP ファイルに対して HTTP POST アクションを実行する前に、
ユーザーがフォーム・ログイン・ページの使用を強制されるように、
Web アプリケーションまたは許可を構成します。
例
サンプル・フォーム・ログイン・ページについては、例: フォーム・ログイン
の項目を参照してください。
WebSphere Application Server サンプル・ギャラリーは、どのように WebSphere Application Server ログイン機構を使用して
フォーム・ログイン手順のインプリメントと構成を行うかを示すフォーム・ログイン・サンプルを提供します。
このサンプルは、以下のテクノロジーを統合して、
WebSphere Application Server および Java 2 Platform, Enterprise Edition (J2EE) の
ログイン機能を説明したものです。
- J2EE フォーム・ベース・ログイン
- ログインでの J2EE サーブレット・フィルター
- IBM 拡張: フォーム・ベース・ログイン
フォーム・ログイン・サンプルは、Technology Samples パッケージの一部です。
フォーム・ログイン・サンプルへのアクセス方法について詳しくは、
サンプルへのアクセス
を参照してください。