WebSphere Application Server Version 6.1 Feature Pack for Web Services   
             オペレーティング・システム: AIX , HP-UX, i5/OS, Linux, Solaris, Windows, Windows Vista, z/OS

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

app.policy ファイルのアクセス権

Java 2 セキュリティーは、いくつかのポリシー・ファイルを使用して、それぞれの Java プログラムごとに認可されたアクセス権を判別します。

WebSphere Application Server がサポートする使用可能な ポリシー・ファイルのリストについては、Java 2 セキュリティー・ポリシー・ファイル のトピックを参照してください。app.policy ファイルは、すべての WebSphere Application Server エンタープライズ・アプリケーションによって共用されるデフォルト・ポリシー・ファイルです。 以下のファイルに含まれる許可の共用体は、WebSphere Application Server エンタープライズ・アプリケーションに適用されます。
  • java.security ファイル内の policy.url.* properties で指定されるすべてのポリシー・ファイル。
  • 構成およびファイル複製のサービスで管理される app.policy ファイル。
  • server.policy ファイル。
  • java.policy ファイル。
  • アプリケーション was.policy ファイル。
  • ra.xml ファイルの許可仕様。
  • library.policy ファイルである共用ライブラリー。

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

WebSphere Application Server では、 スレッドを操作するアプリケーションには、 was.policy または app.policy ファイルで指定された適切なスレッド許可が必要です。 スレッド許可が指定されていない場合、アプリケーションはスレッドを操作することができず、WebSphere Application Server は 例外 java.security.AccessControlException を作成します。 管理者が app.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";
}; 
重要: Signed By および Java Authentication and Authorization Service (JAAS) プリンシパル・キーワードは app.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 は許可ポリシーのロケーションです。

エンタープライズ・アプリケーションのデフォルトのアクセス権 (java.policy ファイル、server.policy ファイル、および app.policy ファイルで定義されたアクセス権を結合したもの) が十分であれば、アクションは不要です。 デフォルトの app.policy ファイルは自動的に使用されます。セル内のすべてのエンタープライズ・アプリケーションに対して、特定の変更が必要な場合は、app.policy ファイルを更新してください。ポリシー・ファイルに構文エラーがあると、アプリケーション・サーバーは始動に失敗します。 これらのポリシー・ファイルの編集は、慎重に行ってください。

ポリシー・ファイルを抽出するには、 コマンド・プロンプトを使用し、ご使用の環境に適切な変数値を使用して以下のコマンドを 1 行で入力します。

[AIX HP-UX Linux Solaris Windows]

wsadmin> set obj [$AdminConfig extract  profiles/profile_name/cells/cell_name/node/
node_name/app.policy c:/temp/test/app.policy]

[i5/OS]

wsadmin> set obj [$AdminConfig extract  profiles/profile_name/cells/cell_name/node/
node_name/app.policy /temp/test/library.policy]

[z/OS]

wsadmin> set obj [$AdminConfig extract  profiles/profile_name/cells/cell_name/node/
node_name/app.policy /temp/test/library.policy]

ポリシー・ツールを使用して、抽出された app.policy ファイルを編集します。詳しくは、PolicyTool を使用したポリシー・ファイルの編集 を参照してください。app.policy ファイルに対する変更は、 ノード上でローカルに行われます。

ポリシー・ファイルをチェックインするには、 コマンド・プロンプトを使用し、ご使用の環境に適切な変数値を使用して以下のコマンドを 1 行で入力します。

[AIX HP-UX Linux Solaris Windows]

wsadmin> $AdminConfig checkin profiles/profile_name/cells/cell_name/nodes/
node_name/app.policy c:/temp/test/was.policy $obj

[i5/OS]

wsadmin> $AdminConfig checkin profiles/profile_name/cells/cell_name/nodes/
node_name/app.policy  temp/test/library.policy $obj

[z/OS]

wsadmin> $AdminConfig checkin profiles/profile_name/cells/cell_name/nodes/
node_name/app.policy  temp/test/library.policy $obj

アクセス権リストと特定のタイプのリソースを関連付けるために、製品の予約済みシンボルがいくつか定義されています。

シンボル 意味
file:${application} アクセス権は、アプリケーション内のすべてのリソースに適用されます。
file:${jars} アクセス権は、アプリケーション内のすべてのユーティリティー Java アーカイブ (JAR) ファイルに適用されます。
file:${ejbComponent} アクセス権は、アプリケーション内のエンタープライズ Bean リソースに適用されます。
file:${webComponent} アクセス権は、アプリケーション内の Web リソースに適用されます。
file:${connectorComponent} アクセス権は、 アプリケーション内のコネクター・リソースと、 スタンドアロンのコネクター・リソース内のコネクター・リソースの、 両方に適用されます。
java.io.FilePermission アクセス権のパスと名前を指定するために、5 つの組み込みシンボルが提供されています。これらのシンボルによって、アクセス権を柔軟に指定することができます。 ファイルの絶対パスは、アプリケーションのインストール後に修正されます。
シンボル 意味
${app.installed.path} アプリケーションがインストールされているパス
${was.module.path} モジュールがインストールされているパス
${current.cell.name} 現在のセル名
${current.node.name} 現在のノード名
${current.server.name} 現在のサーバー名
ヒント: ${application} エントリーでは ${was.module.path} は使用することはできません。

[AIX HP-UX Linux Solaris Windows] [z/OS] WebSphere Application Server に用意されている app.policy ファイルは、app_server_root/profiles/profile_name/config/cells/cell_name/nodes/node_name/app.policy にあり、これには以下のデフォルトのアクセス権が含まれています。

[i5/OS] WebSphere Application Server に用意されている app.policy ファイルは、profile_root/config/cells/cell_name/nodes/node_name/app.policy にあり、これには以下のデフォルトのアクセス権が含まれています。

重要: 次のコード・サンプルでは、java.io.FilePermission アクセス権に関連する最初の 2 行は、表示上の理由で 2 行に分割されています。
grant codeBase "file:${application}" {
  // The following are required by Java mail
  permission java.io.FilePermission "${was.install.root}${/}lib${/}mail-impl.jar", "read";
  permission java.io.FilePermission "${was.install.root}${/}lib${/}activation-impl.jar", "read";
};

grant codeBase "file:${jars}" {
  permission java.net.SocketPermission "*", "connect";
  permission java.util.PropertyPermission "*", "read";
};

grant codeBase "file:${connectorComponent}" {
  permission java.net.SocketPermission "*", "connect";
  permission java.util.PropertyPermission "*", "read";
};

grant codeBase "file:${webComponent}" {
  permission java.io.FilePermission "${was.module.path}${/}-", "read, write";
  permission java.lang.RuntimePermission "loadLibrary.*";
  permission java.lang.RuntimePermission "queuePrintJob";
  permission java.net.SocketPermission "*", "connect";
  permission java.util.PropertyPermission "*", "read";
};

grant codeBase "file:${ejbComponent}" {
 permission java.lang.RuntimePermission "queuePrintJob";
 permission java.net.SocketPermission "*", "connect";
 permission java.util.PropertyPermission "*", "read";
};

セル内のすべての WebSphere Application Server エンタープライズ・アプリケーションが、java.policy ファイル、server.policy ファイル、および app.policy ファイルでデフォルトとして定義されていないアクセス権を必要とする場合は、app.policy ファイルを更新してください。 アクセス権の欠落という症状は、例外 java.security.AccessControlException で示されます。

[z/OS] [AIX HP-UX Linux Solaris Windows] 欠落しているアクセス権は、例外データにリストされます。 例えば、java.security.AccessControlException: access denied (java.io.FilePermission C:¥WebSphere¥AppServer¥java¥jre¥lib¥ext¥mail.jar read) というように表示されます。

[i5/OS] 欠落しているアクセス権は、例外データにリストされます。例えば、java.security.AccessControlException: access denied (java.io.FilePermission app_server_rootBase/lib/mailimpl.jar read) というように表示されます。

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

[AIX HP-UX Linux Solaris Windows] [z/OS]
grant codeBase "file:user_client_installed_location" {
permission java.io.FilePermission
"C:/WebSphere/AppServer/java/jre/lib/ext/mail.jar", "read"; };
[i5/OS]
grant codeBase "file:user_client_installed_location" {
permission java.io.FilePermission
"app_server_root/lib/mail-impl.jar", "read"; };

アクセス権を追加するかどうかを判断するには、AccessControlException のトピックを参照してください。

すべての WebSphere Application Server エンタープライズ・アプリケーションを再始動して、更新済みの app.policy ファイルが有効になっていることを確認してください。




関連概念
アクセス制御の例外
関連タスク
マイグレーション、共存、および相互運用 - セキュリティーに関する考慮事項
PolicyTool を使用したポリシー・ファイルの編集
Java 2 セキュリティー・ポリシー・ファイルの構成
関連資料
server.policy ファイルのアクセス権
client.policy ファイルのアクセス権
filter.policy ファイルのアクセス権
java.policy ファイルのアクセス権
Java 2 セキュリティー・ポリシー・ファイル
参照トピック    

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

最終更新: Jan 21, 2008 4:10:06 PM EST
http://publib.boulder.ibm.com/infocenter/wasinfo/v6r1/index.jsp?topic=/com.ibm.websphere.wsfep.multiplatform.doc/info/ae/ae/rsec_apppolicy.html