Interstage

サーブレットからのLDAPアクセス

セキュリティ機能の組み込み方法

Webアプリケーションでセキュリティ機能を有効にするために、以下の設定が必要です。

1 ユーザ認証の設定

Webアプリケーションでユーザ認証を行うには、Webアプリケーション環境定義ファイル(deployment descriptor)の“ユーザ認証の定義(login-configタグ)”を設定します。

タグ名

説明

タグの
省略

複数の
指定

auth-method

認証方法を定義します。以下の値を指定します。

  • BASIC
    HTTP Basic認証
  • FORM
    フォームベース認証

auth-methodタグまたは認証方法が省略された場合は、"BASIC"が省略値となります。


(可)

×
(不可)

realm-name

HTTP Basic認証で使用する領域名を定義します。
領域名は、ユーザ認証を行う画面(ダイアログボックス)に表示されます。
HTTP Basic認証を使用しない場合、指定は無視されます。


(可)

×
(不可)

form-login-config

フォームベース認証定義の開始/終了を定義します。
フォームベース認証で使用するログインページやエラーページを指定します。
フォームベース認証を使用しない場合、指定は無視されます。


(可)

×
(不可)

form-login-page

フォームベース認証で使用するログインページを定義します。
form-login-configタグ定義時は、必須です。

指定されたログインぺージは、フォームベース認証が行われる際にWebブラウザに表示されます。
(注意)
ログインページでは、ユーザ名/パスワードをServletコンテナに受け渡すため、以下のインタフェースを使用しなければなりません。

  • アプリケーション名:j_security_check
  • パラメタ名->ユーザ名:j_username
  • パラメタ名->パスワード:j_password

<例>
:
<FORM ACTION="j_security_check" METHOD="POST">
UserName: <INPUT TYPE="text" NAME="j_username">
Password: <INPUT TYPE="password" NAME="j_password">
</FORM>
:
auth-methodタグでフォームベース認証を指定した場合は、必ず本タグを指定してください。ログインページは必ず指定してください。省略された場合は、ログインページが表示されません。

×
(不可)

×
(不可)

form-error-page

フォームベース認証失敗時に表示するエラーページのロケーションを定義します。
form-login-configタグ定義時は、必須です。

指定されたエラーぺージは、フォームベース認証失敗時にWebブラウザに表示されます。
フォームログイン失敗時に表示するエラーページのロケーションを指定します。

×
(不可)

×
(不可)

2 アクセス制限の設定

Webアプリケーションでアクセス制限を行うには、Webアプリケーション環境定義ファイル(deployment descriptor)の以下のタグを設定します。

  • “アクセス制限の定義(security-constraintタグ)”
  • “セキュリティロールの定義(security-roleタグ)”
  • “セキュリティロールの参照の定義(security-role-refタグ)”

■アクセス制限の定義 (security-constraintタグ)

タグ名

説明

タグの
省略

複数の
指定

web-resource-collection

Webリソースコレクションを定義します。

×
(不可)


(可)

web-resource-name

webリソースのコレクション名を定義します。
web-resource-collectionタグの定義時は、必須です。

×
(不可)

×
(不可)

url-pattern

URLパターンを定義します。
Webアプリケーションのルートディレクトリからの対象パスで定義します。このとき、先頭に"/"を追加します。
url-patternタグまたは、URLパターンを省略した場合は、本タグを含む<security-constraint>タグで指定されたアクセス制限が無効になります。


(可)


(可)

http-method

HTTPのメソッド(GET、POSTなど)を定義します。
定義したメソッドに対してだけアクセスが制限されます。
省略した場合は、全メソッドがアクセス制限の対象となります。


(可)


(可)

auth-constraint

Webリソースコレクションにアクセス可能なセキュリティロールを定義します。
指定したロールを持つユーザだけ、リソースコレクションにアクセス可能となります。
省略した場合は、すべてのユーザがアクセス可能となります。


(可)

×
(不可)

role-name

セキュリティロール名を定義します。
セキュリティロール名が指定された場合、ユーザの識別が必要となるため、ユーザ認証が行われます。
ここで指定されるロールは、
<servlet>タグの<security-role-ref>の<role-link>に定義されていなければなりません。
role-nameタグを省略した場合は、すべてのユーザがアクセス可能となります。ロール名は必ず指定してください。
ロール名を省略した場合は、どのユーザもアクセスできません。


(可)


(可)

user-data-constraint

データ保護属性を定義します。クライアント−コンテナ間で通信するデータをどう保護すべきであるかを定義します。


(可)

×
(不可)

transport-guarantee

クライアント−サーバ間の転送方法を定義します。
user-data-constraintタグの定義時は、必須です。
以下の値を指定します。

  • NONE
    アプリケーションが、転送保証を必要としないことを意味します。
  • INTEGRAL
    クライアント−サーバ間で送信されるデータの転送保証を必要とすることを意味します。
  • CONFIDENTIAL
    データの盗聴の防止が必要であることを意味します。

INTEGRALまたはCONFIDENTIALを指定された場合は、SSLによる通信であることを保証します。

×
(不可)

×
(不可)

■セキュリティロールの定義 (security-roleタグ)

タグ名

説明

タグの
省略

複数の
指定

role-name

セキュリティロール名を定義します。
ロール名には、セキュリティ機能の運用設定(Smart RepositoryまたはInfoDirectory)で定義したセキュリティロール名を指定してください。

×
(不可)

×
(不可)


■セキュリティロールの参照の定義

タグ名

説明

タグの
省略

複数の
指定

security-role-ref

サーブレットコードで使用するセキュリティロールの参照を定義します。


(可)


(可)

role-name

サーブレットコードで使用されるセキュリティロール名を指定します。
security-role-refタグを定義する場合は必須です。
javax.servlet.http.HttpServletRequest.isUserInRole()メソッドのパラメタとして利用することができます。

×
(不可)

×
(不可)

role-link

<security-role>で指定されたセキュリティロール名を定義します。
security-role-refタグを定義する場合は必須です。

×
(不可)

×
(不可)

■設定例

   Webアプリケーション環境定義ファイル(deployment descriptor)の設定例を次に示します。

 定義例

以下にセキュリティを利用するためのweb.xmlのタグ設定の一例を示します。


<servlet>
    ・
    ・
    <security-role-ref>
        <role-name>
            ADM
        </role-name>
        <role-link>
            Administrator        -->(注1)
        </role-link>
    </security-role-ref>
    ・
    ・
</servlet>


<security-constraint>
        <web-resource-collection>
        <web-resource-name>
            Shop
        </web-resource-name>
        <url-pattern>
            /Shop/*        -->(注2)
        </url-pattern>
        <http-method>
            POST        -->(注3)
        </http-method>
    </web-resource-collection>
    <auth-constraint>
        <role-name>
            Administrator        -->(注4)
        </role-name>
    </auth-constraint>
    <user-data-constraint>
        <transport-guarantee>
            CONFIDENTIAL        -->(注5)
        </transport-guarantee>
    </user-data-constraint>
</security-constraint>


<login-config>
    <auth-method>
        BASIC        -->(注6)
    </auth-method>
    <realm-name>
        name
    </realm-name>
</login-config>


<security-role>
    <role-name>
        Administrator        -->(注7)
    </role-name>
</security-role>

   上記例は、(注2)に示されるリソースに対し、(注3)に示される方法でアクセスした場合の設定です。
   ユーザ認証は、(注6)で示されるようにHTTP Basic認証が行われます。
   セキュリティロールは、(注4)に示されるようにAdministratorが許可しています。
      (注4)の値は、(注1)で定義します。
      (注1)の値は、(注7)で定義します。
      (注7)の値は、セキュリティロールとして使用するディレクトリサービスのtitle属性として設定した値を指定してください。
   転送方法は、(注5)に示されるように「データの盗聴防止を必要とする」ため、SSLによる通信の場合を許可しています。

フォームベース認証の場合は、以下の定義になります。

<login-config>
    <auth-method>
        FORM
    </auth-method>
    <form-login-config>
        <form-login-page>
            /login.jsp
        </form-login-page>
        <form-error-page>
            /error.jsp
        </form-error-page>
    </form-login-config>
</login-config>

元のページへ戻る ページの先頭へ