WebSphere Application Server Network Deployment, Version 6.1   
             オペレーティング・システム: AIX , HP-UX, Linux, Solaris, Windows, Windows Vista

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

was.policy ファイルの構成

アプリケーションにアクセスする特定のリソースがある場合、was.policy ファイルを更新してください。

始める前に

Java 2 セキュリティーは、いくつかのポリシー・ファイルを使用 して、それぞれの Java プログラムごとに認可されたアクセス権を判別します。 was.policy ファイルは、WebSphere Application Server エンタープライズ・アプリケーションのアプリケーション固有のポリシー・ファイルです。 このファイルは、META-INF/was.policy エンタープライズ・アーカイブ (.EAR) ファイルに組み込まれています。was.policy ファイルは、次の場所にあります。
profile_root/config/cells/cell_name/applications/
ear_file_name/deployments/application_name/META-INF/was.policy

WebSphere Application Server バージョン 6.1 によってサポートされる使用可能な ポリシー・ファイルのリストについては、Java 2 セキュリティー・ポリシー・ファイル を参照してください。

以下のファイルに含まれる許可の共用体は、WebSphere Application Server エンタープライズ・アプリケーションに適用されます。
  • java.security ファイル内の policy.url.* properties で指定されるすべてのポリシー・ファイル。
  • 構成およびファイル複製のサービスで管理される app.policy ファイル。
  • server.policy ファイル。
  • java.policy ファイル。
  • アプリケーション was.policy ファイル。
  • ra.xml ファイルの許可仕様。
  • library.policy ファイルである共用ライブラリー。

これらのファイルに加えられた変更は、セル内の他のノードに複製されます。

アクセス権リストと特定のタイプのリソースを関連付けるために、製品で予約済みのいくつかのシンボルが定義されています。
シンボル 定義
file:${application アクセス権は、アプリケーション内で使用される すべてのリソースに適用されます。
file:${jars} アクセス権は、アプリケーション内のすべての ユーティリティー Java アーカイブ (JAR) ファイルに適用されます。
file:${ejbComponent} アクセス権は、アプリケーション内のエンタープライズ Bean リソースに適用されます。
file:${webComponent} アクセス権は、アプリケーション内の Web リソースに適用されます。
file:${connectorComponent} アクセス権は、アプリケーション内のコネクター・リソースに適用されます。
WebSphere Application Server では、 スレッドを操作するアプリケーションには、 was.policy または app.policy ファイルで指定された適切なスレッド許可が必要です。 スレッド許可が指定されていない場合、アプリケーションはスレッドを操作することができず、WebSphere Application Server は 例外 java.security.AccessControlException を作成します。 特定のアプリケーションの was.policy ファイルに許可を追加すると、 WebSphere Application Server を再始動する必要がなくなります。 管理者は、アプリケーションがスレッドを操作できるように、以下のコードを was.policy または app.policy ファイルに追加する必要があります。
grant codeBase "file:${application}" {
permission java.lang.RuntimePermission "stopThread";
permission java.lang.RuntimePermission "modifyThread";
permission java.lang.RuntimePermission "modifyThreadGroup";
};
管理者はスレッド許可を app.policy ファイルに追加することもできますが、 許可の変更により、WebSphere Application Server の再始動が必要になります。
重要: Signed By および Java Authentication and Authorization Service (JAAS) プリンシパル・キーワードは、was.policy ファイルではサポートされていません。Signed By キーワードは、ポリシー・ファイル java.policyserver.policy、および client.policy でサポートされています。 JAAS プリンシパル・キーワードは、 Java 仮想マシン (JVM) システム・プロパティー java.security.auth.policy により指定されている場合、 JAAS ポリシー・ファイル内でサポートされます。 java.security.auth.policy ファイル内に許可ポリシー・ファイルを auth.policy.url.n=URL で静的に設定できます。 ここで、URL は許可ポリシーのロケーションです。
これらのブロックのほかに、より細かく設定するためにモジュール名を指定できます。 以下に例を示します。
grant codeBase "file:DefaultWebApplication.war" {
      permission java.security.SecurityPermission "printIdentity";
 };

grant codeBase "file:IncCMP11.jar" {
      permission java.io.FilePermission
      "${user.install.root}${/}bin${/}DefaultDB${/}-", 
      "read,write,delete";
};
java.io.FilePermission アクセス権のパスと名前を指定するために、5 つの組み込みシンボルが提供されています。これらのシンボルによって、アクセス権を柔軟に指定することができます。 ファイルの絶対パスは、アプリケーションのインストール後に修正されます。
シンボル 定義
${app.installed.path} アプリケーションがインストールされているパス
${was.module.path} モジュールがインストールされているパス
${current.cell.name} 現在のセル名
${current.node.name} 現在のノード名
${current.server.name} 現在のサーバー名

このタスクについて

エンタープライズ・アプリケーションのデフォルトのアクセス権が十分である場合は、アクションは必要ありません。 デフォルトのアクセス権は、java.policy ファイル、server.policy ファイル、および app.policy ファイルで 定義されたアクセス権を結合したものです。アプリケーションが特定のリソースにアクセスする必要がある場合は、was.policy ファイルを 更新してください。最初の 2 つのステップは、新規ポリシー・ファイルを作成することを想定しています。
ヒント: ポリシー・ファイルに構文エラーが あると、アプリケーション・サーバーは失敗します。 これらのポリシー・ファイルを編集する際は、注意してください。

プロシージャー

  1. PolicyTool を使用して、新規 was.policy ファイルを作成し、編集します。 詳しくは、PolicyTool を使用したポリシー・ファイルの編集 を参照してください。
  2. was.policy ファイルをエンタープライズ・アーカイブ (EAR) ファイルにパッケージします。

    詳しくは、アプリケーションへの was.policy ファイルの追加 を参照してください。

    以下の説明では、was.policy ファイルのインポート方法について示します。
    1. EAR ファイルをアセンブリー・ツールにインポートします。
    2. 「Project Navigator」ビューを開きます。
    3. EAR ファイルを展開して、「META-INF」をクリックします。 META-INF ディレクトリーに、was.policy ファイルがあります。 このファイルを削除するには、ファイル名を右マウス・ボタン・クリックして、「削除」を選択します。
    4. 「Project Navigator」ビューの下部の「J2EE Hierarchy」をクリックします。
    5. デプロイメント記述子内の「Modules」ディレクトリーを右マウス・ボタン・クリックし、 「インポート」>「インポート」>「File system」とクリックすることによって、 was.policy ファイルをインポートします。
    6. 次へ」をクリックします。
    7. From directory」フィールドに was.policy ファイルへのパス名を入力するか、 「参照」をクリックしてファイルを検索します。
    8. Into directory」フィールドにリストされているパス・ディレクトリーに、 有効な META-INF ディレクトリーがリストされていることを検証します。
    9. 終了」をクリックします。
    10. EAR ファイルの妥当性検査を行うには、Modules ディレクトリーを含んでいる EAR ファイルを右マウス・ボタン・クリックして、 「Run Validation」をクリックします。
    11. 新規 EAR ファイルを保管するには、その EAR ファイルを右マウス・ボタン・クリックして、 「エクスポート」>「Export EAR file」とクリックします。 改訂した EAR ファイルを保管しない場合には、その EAR ファイルには新規 was.policy ファイルが含まれます。 ただし、ワークスペースが破壊されると、改訂した EAR ファイルは失われます。
    12. デプロイメント・コードを生成するには、EAR ファイルを右マウス・ボタン・クリックして、「Generate Deployment Code」をクリックします。
  3. 既存のインストール済みアプリケーションがあれば、それを更新します。 ポリシー・ツールを使用して was.policy ファイルを変更します。詳しくは、PolicyTool を使用したポリシー・ファイルの編集 を参照してください。

結果

更新された was.policy ファイルが、アプリケーションの再始動後、 アプリケーションに適用されます。

アプリケーションが、java.policy ファイル、server.policy ファイル、および app.policy で デフォルトとして定義されていない特定のリソースにアクセスする必要がある場合は、そのアプリケーションの was.policy ファイルを 削除してください。 アクセス権の欠落という症状は、例外 java.security.AccessControlException で示されます。不足している アクセス権は、例外データにリストされます。

java.security.AccessControlException: access denied (java.io.FilePermission
app_server_root/lib/mail-impl.jar read)

上記の例は表示の都合上、複数の行に分割されています。

Java プログラムがこの例外を受け取り、このアクセス権の追加が認められると、 次のアクセス権を was.policy ファイルに追加します。

grant codeBase "file:user_client_installed_location" {
permission java.io.FilePermission "app_server_root/lib/mail-impl.jar", "read"; };

上記の例は表示の都合上、複数の行に分割されています。

アクセス権を追加するかどうかを判断するには、アクセス制御の例外 を参照してください。

次の作業

更新された app.policy ファイルを有効にするために、すべてのアプリケーションを再始動します。



関連概念
アクセス制御の例外
関連タスク
マイグレーション、共存、および相互運用 - セキュリティーに関する考慮事項
アプリケーションへの was.policy ファイルの追加
Java 2 セキュリティー・ポリシー・ファイルの構成
関連資料
Java 2 セキュリティー・ポリシー・ファイル
spi.policy ファイルのアクセス権
library.policy ファイルのアクセス権
タスク・トピック    

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

最終更新: Jan 21, 2008 7:44:53 PM EST
http://publib.boulder.ibm.com/infocenter/wasinfo/v6r1/index.jsp?topic=/com.ibm.websphere.nd.doc/info/ae/ae/tsec_waspolicyfile.html