9.3.1 ロールに基づくWebコンテナのユーザ認証の機能

アクセスするのに必要なロールは,J2EEアプリケーションに含まれるDD(WEB-INF/web.xml)内の<security-constraint>タグに指定します。J2EEアプリケーションの設定については,「9.3.2 DDでの定義」を参照してください。

ここでは,ロールに基づくWebコンテナのユーザ認証で実現できる機能について説明します。

<この項の構成>
(1) ユーザ情報の管理
(2) コンテナセキュリティとアクセス権管理
(3) プログラムセキュリティ

(1) ユーザ情報の管理

Webコンテナでは,各ユーザのユーザ名,パスワード,および所属するロールを,J2EEサーバ付属のユーザ管理機能によって定義し,保持・管理します。

(2) コンテナセキュリティとアクセス権管理

Webコンテナでは,Webクライアントから特定のURLへのアクセスを制限できます。

特定のURLへのアクセスを制限するには,DD(WEB-INF/web.xml)に次に示す情報を記述します。

Webクライアントが認証に失敗した場合,またはユーザがアクセスするのに必要なロールを持たない場合には,アクセス制限対象となっているURLパターンへのアクセスはエラーになります。なお,認証に成功したクライアントは,セッションの有効期間内には再度認証の対象になることはありません。

セキュリティ定義情報,および認証方式を定義する方法は,Servlet API 2.3で規定されているDD(WEB-INF/web.xml)の仕様に従います。

なお,Webコンテナでの認証方式は,Basic認証とForm認証とがあります。これらは,J2EEアプリケーションに含まれるDD(WEB-INF/web.xml)に<login-config>タグを追加することで定義できます。J2EEアプリケーションの設定については,「9.3.2 DDでの定義」を参照してください。

注意
WebサーバにHitachi Web ServerまたはMicrosoft IISを使用する場合,WebコンテナによるBasic認証を正しく動作させるには,Webサーバ認証機能を解除しておく必要があります。
詳細については,「9.3.4 認証機能を併用するときの注意」を参照してください。

(3) プログラムセキュリティ

DD(WEB-INF/web.xml)によってBasic,またはForm認証によるアクセス制限が設定されたサーブレット,JSPでは,HttpServletRequestの次に示すAPIを使用することで,ログインしたユーザのユーザ名やロール名などに応じて処理を切り替えるなど,プログラムレベルでのより細かいセキュリティ処理を行えます。

これらのAPIの詳細については,Java Servlet Specification v2.3を参照してください。