WebSphere Application Server, Version 6.0.x   
             オペレーティング・システム: AIX , HP-UX, Linux, Solaris, Windows

             目次と検索結果のパーソナライズ化

Web アプリケーション用のプログラマチック・セキュリティー API による 開発

この情報を使用して、Web アプリケーションの API をプログラマチックに保護します。

始める前に

プログラマチック・セキュリティーは、 宣言セキュリティー単独ではアプリケーションのセキュリティー・モデルを表現するのに十分でない場合に、 セキュリティーを重視するアプリケーションによって使用されます。 プログラマチック・セキュリティーは、HttpServletRequest インターフェースの以下のメソッドから構成されています。
getRemoteUser
クライアントが認証に使用したユーザー名を戻します。 ユーザーが認証されていない場合は、null を戻します。
isUserInRole
(ストリングの役割名): リモート・ユーザーに 指定されたセキュリティー役割が与えられている場合は、true を戻します。 リモート・ユーザーが、指定された役割を与えられていない場合、 またはユーザーが認証されていない場合は、false を戻します。
getUserPrincipal
リモート・ユーザー名を含む java.security.Principal オブジェクトを戻します。ユーザーが認証されていない場合 は、null を戻します。

isUserInRole メソッドが使用されている場合は、このメソッドに渡された役割名を含んでいる role-name サブエレメントを持つデプロイメント記述子で、security-role-ref エレメントを宣言します。 実際の役割はアプリケーションの アセンブリー段階で作成されるため、論理的役割を役割名として使用して、security-role-ref エレメントの 記述において、アセンブラーに十分なヒントを提供し、 その役割を実際の役割にリンクすることができます。アセンブリー時に、 アセンブラーは role-link サブエレメントを作成して、役割名を実際の役割にリンク します。Rational Application Developer (RAD) などのアセンブリー・ツールを使用すれば、security-role-ref エレメントを作成することができます。 また、アセンブリー・ツールを使用して、 アセンブリー段階で security-role-ref エレメントを作成することもできます。

プロシージャー

  1. 必要なセキュリティー・メソッドをサーブレット・コードに追加します。
  2. role-name フィールドを持つ security-role-ref エレメントを作成します。 開発中に security-role-ref エレメントが作成されない場合は、必ずアセンブリー段階で作成してください。

結果

サーブレット・アプリケーションをプログラマチックに保護しました。

このステップは、アプリケーションをプログラマチックに保護する場合に必要です。 この処置は、特に、Web アプリケーションが独自の許可表 (外部リソースの リモート・ユーザーへのマッピング) を使用して、外部リソースにアクセスしたり、 外部リソースへのアクセスを制御する場合に、役立ちます。 この場合、getUserPrincipal メソッド または getRemoteUser メソッドを使用してリモート・ユーザーを取得してください。 そうすれば、Web アプリケーションは、その独自の許可表を調べて、許可を実行することができます。 リモート・ユーザー情報は、対応するユーザー情報を、データベースやエンタープライズ Bean などの外部ソースから取り出すときにも役に立ちます。 同じように、isUserInRole メソッドを使用できます。
開発後に、以下のようにして、 security-role-ref エレメントを作成できます。
<security-role-ref>
   <description>Provide hints to assembler for linking this role 
                name to an actual role here<¥description>
   <role-name>Mgr<¥role-name>
</security-role-ref>
アセンブリー時に、アセンブ ラーは、以下に示すように role-link を作成します。
<security-role-ref>
   <description>Hints provided by developer to map the role 
                name to the role-link</description>
   <role-name>Mgr</role-name>
   <role-link>Manager</role-link>
</security-role-ref>
プログラマチック・サーブレット・セキュリティー・メソッドは、 サーブレットの doGet、doPost、doPut、doDelete のいずれのサービス・メソッド内 にも追加できます。以下では、プログラマチック・セキュリティー API を使用した例を示しています。
public void doGet(HttpServletRequest request, 
HttpServletResponse response) {

   ....

   // to get remote user using getUserPrincipal()
   java.security.Principal principal = request.getUserPrincipal();
   String remoteUser = principal.getName();
 
   // to get remote user using getRemoteUser()
   remoteUser = request.getRemoteUser();

   // to check if remote user is granted Mgr role
   boolean isMgr = request.isUserInRole("Mgr");

   // use the above information in any way as needed by 
   // the application 
   ....
                  
}

次の作業

アプリケーションの開発後、アセンブリー・ツールを使用して役割を作成し、 実際の役割を security-role-ref エレメント内の役割名にリンクしてください。詳しくは、アセンブリー・ツールを使用した Web アプリケーションの保護 を参照してください。



サブトピック
getRemoteUser メソッドおよび getAuthType メソッド
例: Web アプリケーションのためのプログラマチック・セキュリティー・モデルの使用
関連概念
役割ベースの許可
認証メカニズム
関連タスク
サーブレット・フィルターの構成
アセンブリー・ツールを使用した Web アプリケーションの保護
タスク・トピック    

ご利用条件 | フィードバック

最終更新: Jan 22, 2008 12:07:38 AM EST
http://publib.boulder.ibm.com/infocenter/wasinfo/v6r0/index.jsp?topic=/com.ibm.websphere.base.doc/info/aes/ae/tsec_web.html