サーブレット・セキュリティー・メソッド

認証、ログイン、ログアウト、getRemoteUser、isUserInRole、および getAuthType のサーブレット・セキュリティー・メソッドは、javax.servlet.http.HttpServletRequest インターフェースのメソッドです。

認証

注: 認証、ログイン、ログアウトのサーブレット・セキュリティー・メソッドは、WebSphere® Application の本リリースに含まれる Java™ Servlet 3.0 では新しい機能です。

認証メソッドでは、サーブレット・コンテキストに対して構成された WebSphere Application Server コンテナー・ログイン・メカニズムを使用してユーザーを認証します。

認証方式の構文は以下のとおりです。
boolean authenticate(HttpServletResponse response))
前の例では以下のエレメントが使用されています。
応答
HttpServletRequest に関連づけられた HttpServletResponse。

認証方式は、認証が確立された場合、または成功した場合に TRUE を戻します。

認証方式は、認証が完了せず基本ログイン・メカニズムがコミットされた場合に FALSE を戻し、それに対応して、メッセージと HTTP 状況コードがユーザーに戻されます。

応答の書き込み中にエラーが発生した場合、java.io.IOException が発生します。

認証が失敗した場合は ServletException が発生し、呼び出し元が責任を持ってエラー (例: 基本ログイン・メカニズムによって、ユーザーに戻すためのメッセージおよび HTTP 状況コードが確立されなかった) を処理します。

トラブルの回避 (Avoid trouble) トラブルの回避 (Avoid trouble): 認証メソッドを呼び出す場合、以下のことに注意してください。
  • WebSphere Application Server は、HTTP 401 コードをクライアントに戻します。
  • メソッドは、サーブレット・コンテキストに対して構成された WebSphere Application Server コンテナー・ログイン・メカニズムに依存します。例えば、このサーブレットに対して定義されたフォーム・ログインがある場合、ユーザー名とパスワードを入力するようプロンプトが出されます。クライアントは、認証のためにユーザー ID およびパスワードを WebSphere Application Server に送信します。
重要: 新規サブジェクトを使用して別のサービスを呼び出す前に、認証方式が TRUE を戻すようにしてください。以下に例を示します。
Boolean authResultTrue = req.authenticate(response);
				if (!authResultTrue) {
	return;
} else {
		// Use the new invocation subject to call other services.
	      }			
 
gotcha

ログイン

ログイン・メソッドでは、ユーザー ID とパスワードで WebSphereApplication Server へのユーザー認証が実行されます。認証が成功すれば、スレッドにユーザー・サブジェクトが作成される他、Lightweight Third Party Authentication (LTPA) Cookie (シングル・サインオン (SSO) が有効になっている場合) が作成されます。

ログイン・メソッドの構文は以下のとおりです。
login(java.lang.String username, java.lang.String password)
前の例では以下のエレメントが使用されています。
username
ユーザーのログイン ID に対応するストリング値。
password
ユーザーのパスワード。

ServletException が発生するのは、構成されたログイン・メカニズムがユーザー名とパスワードによる認証をサポートしない場合、ID が既に認証されている場合 (ログインへの呼び出しより前に)、または入力されたユーザー名とパスワードの妥当性検査が失敗した場合です。

注: セキュリティー・カスタム・プロパティー com.ibm.websphere.security.webAlwaysLogin を TRUE に設定でき、その場合は、既に認証済みであってもユーザー名とパスワードによって WebSphere アプリケーションで認証が実行されます。

セキュリティー・カスタム・プロパティーの変更についての詳細は、グローバル・セキュリティー構成の資料またはセキュリティー・ドメイン構成の資料で、既存のカスタム・プロパティーの変更について参照してください。

注: このログイン方式では、WebSphere Application Server への認証に常にユーザー ID とパスワードが使用され 、さらに HttpServletRequest に含まれる SSO 情報も使用されます。
トラブルの回避 (Avoid trouble) トラブルの回避 (Avoid trouble): 認証方式およびログイン・メソッドは、呼び出しサブジェクトを新規サブジェクトに設定します。呼び出し元サブジェクトが NULL の場合、呼び出し元サブジェクトは新規サブジェクトに設定されます。呼び出し元サブジェクトが NULL でない場合、呼び出し元サブジェクトは新規サブジェクトに設定されません。

認証方式およびログイン・メソッドが、呼び出しサブジェクトを新規サブジェクトに設定するため、デプロイメント記述子、セキュリティー・アノテーション、または動的アノテーションの run-As 属性によって定義された RunAs は無視されます。

gotcha

ログアウト

ログアウト・メソッドは、WebSphere Application Server からユーザーをログアウトし、HTTP セッションを無効にします。このプロセス中、WebSphere Application Server は、以下のプロセスを完了します。
  • SSO が使用可能である場合、LTPA Cookie を消去します
  • HTTP セッションを無効化します
  • 認証キャッシュからユーザーを除去します
  • スレッドからユーザー・サブジェクトを除去します
  • 呼び出し元および呼び出しサブジェクトを消去します
  • 認証タイプを NULL に設定します

ログアウト後に、保護されている Web リソースにアクセスするには、再認証が必要な他、getUserPrincipal、getRemoteUser、および getAuthType のメソッドが NULL を戻す必要があります。

ログアウト・メソッドの構文は以下のとおりです。
logout()

ログアウトが失敗した場合、ServletException が発生します。

認証、ログインおよびログアウトのメソッドの監査イベント・タイプ

認証、ログイン、ログアウトのメソッドを監査するには、監査イベント・タイプ・ファイルをいくつか作成または拡張する必要があります。これらのイベント・タイプは、デフォルトのイベント・タイプ・ファイルの一部ではありません。

表 1. 認証、ログイン、およびログアウトのメソッドの監査イベント・タイプ.

認証、ログイン、およびログアウトのメソッドに必要な監査イベント・タイプは以下のとおりです。

メソッド イベント名の監査 イベントの結果の監査
認証/ログイン SECURITY_AUTHN SUCCESS または FAILURE
ログアウト SECURITY_AUTHN_TERMINATE SUCCESS
ログアウト SECURITY_AUTHN_TERMINATE FAILURE

isUserInRole

(ストリングのロール名): リモート・ユーザーに 指定されたセキュリティー・ロールが与えられている場合は、true を戻します。 リモート・ユーザーが、指定されたロールを与えられていない場合、 またはユーザーが認証されていない場合は、false を戻します。

getRemoteUser

ユーザーが認証済みである場合、getRemoteUser メソッドは、要求を行うユーザーのログインを戻します。ユーザーが 認証済みでない場合、getRemoteUser メソッドは、NULL を戻します。

getAuthType

getAuthType メソッドは、 サーブレットの保護に使用される認証スキームの名前を戻します。 サーブレットが保護されていない場合、getAuthType メソッドは NULL を戻します。

使用される認証スキームは、以下のとおりです。
FORM
フォーム・ベースの認証が使用される場合
BASIC
基本認証が使用される場合
CLIENT_CERT
クライアント証明書認証が使用される場合。
注:
getRemoteUser と getAuthType のいずれのメソッドも、サーブレットがデプロイされているアプリケーション・サーバーでセキュリティーが使用可能であるかどうかによって、戻すデータが異なります。次のような可能性があります。
  • アプリケーション・セキュリティーが使用可能な状態でサーブレットが保護されている場合、getRemoteUser メソッドはログインを戻し、getAuthType メソッドは構成されている認証スキームを戻します。
  • アプリケーション・セキュリティーが有効にされていない場合、両方のメソッドは NULL を戻します。

トピックのタイプを示すアイコン 参照トピック



タイム・スタンプ・アイコン 最終更新: last_date
http://www14.software.ibm.com/webapp/wsbroker/redirect?version=cord&product=was-nd-mp&topic=rsec_secgetru
ファイル名:rsec_secgetru.html