Java 2 セキュリティー・ポリシー・ファイルの構成
指定した WebSphere® Application Server エンタープライズ・アプリケーションに必要なアクセス権が認可されるように Java™ 2 セキュリティー・ポリシー・ファイルを構成できます。
始める前に
WebSphere Application Server でサポートされる使用可能なポリシー・ファイルのリストについては、Java 2 セキュリティー・ポリシー・ファイルのトピックを参照してください。
WebSphere Application Server では、
動的ポリシー・ファイルと静的ポリシー・ファイルの 2 種類のポリシー・ファイルがサポートされています。
静的ポリシー・ファイルは、デフォルト・アクセス権を提供します。
動的ポリシー・ファイルは、アプリケーションのアクセス権を提供します。
以下の 6 つの動的ポリシー・ファイルが提供されています。
ポリシー・ファイル名 | 説明 |
---|---|
app.policy | セル内のすべてのエンタープライズ・アプリケーションに対するデフォルトのアクセス権が含まれています。
注: app.policy ファイルへの更新は、app.policy ファイルが属するノード上のエンタープライズ・アプリケーションのみに適用されます。
|
was.policy | WebSphere Application Server エンタープライズ・アプリケーションに対するアプリケーション固有のアクセス権が含まれています。 このファイルは、エンタープライズ・アーカイブ (EAR) ファイルにパッケージされています。 |
ra.xml | WebSphere Application Server エンタープライズ・アプリケーションに対するコネクター・アプリケーション固有のアクセス権が含まれています。 このファイルは、リソース・アダプター・アーカイブ (RAR) ファイルにパッケージされています。 |
spi.policy | サービス・プロバイダー・インターフェース (SPI)、または WebSphere Application Server に組み込まれているサード・パーティー製リソースに対するアクセス権が含まれています。 デフォルトの内容では、すべてが認可されます。セルが、そのセル内の SPI に対してさらに多くの保護を必要とする場合は、このファイルを慎重に更新してください。このファイルは、resources.xml ファイルで定義されているすべての SPI に適用されます。 |
library.policy | エンタープライズ・アプリケーションの共有ライブラリーに対するアクセス権が 含まれています。 |
filter.policy | セル内の was.policy ファイルおよび app.policy ファイルからフィルターに掛けて除外する必要のあるアクセス権のリストが含まれています。 このフィルター・メカニズムは、was.policy および app.policy ファイルのみに適用されます。 |
WebSphere Application Server では、
アプリケーションは was.policy または app.policy ファイルで指定された適切なスレッド許可を持つ必要があります。
スレッド許可が指定されていない場合、アプリケーションはスレッドを操作することができず、WebSphere Application Server は
例外 java.security.AccessControlException を作成します。
app.policy ファイルは、指定されたノードに適用されます。
1 つの app.policy ファイルで許可を変更した場合は、残りのノードの同じファイルに新規スレッド・ポリシーを取り込む必要があります。
また、app.policy ファイルにスレッド許可を追加した場合、新規許可を実行するには、WebSphere
Application Server を再始動する必要があります。
ただし、特定のアプリケーションの 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";
};
重要: Signed By キーワードは、ポリシー・ファイル
app.policy、spi.policy、library.policy、was.policy、
および filter.policy ファイルではサポートされていません。
ただし、Signed By キーワードは、ポリシー・ファイル java.policy、server.policy、
および client.policy ファイルではサポートされます。Java Authentication and Authorization Service (JAAS) は、app.policy、spi.policy、library.policy、was.policy、および filter.policy ファイルではサポートされていません。
ただし、JAAS プリンシパル・キーワードは、Java 仮想マシン (JVM) のシステム・プロパティー
java.security.auth.policy で指定されている場合、JAAS ポリシー・ファイル内でサポートされます。
java.security.auth.policy 内の許可ポリシー・ファイルを auth.policy.url.n=URL で静的に設定できます。
ここで、URL は許可ポリシーのロケーションです。
手順
タスクの結果
![[AIX Solaris HP-UX Linux Windows]](../images/dist.gif)
![[IBM i]](../images/iseries.gif)
例
セル内の WebSphere Application Server エンタープライズ・アプリケーションがアクセス権を必要とする場合は、いくつかの動的ポリシー・ファイルを更新する必要があります。アクセス権の欠落という症状は、例外 java.security.AccessControlException で示されます。不足しているアクセス権は、以下の例外データにリストされます。 これは 1 行に表示されますが、見やすくするために複数のセクションに分割して示します。
![[IBM i]](../images/iseries.gif)
![[z/OS]](../images/ngzos.gif)
java.security.AccessControlException: access denied (java.io.FilePermission
${was.install.root}/java/ext/mail.jar read)
Java プログラムがこの例外を受け取り、 このアクセス権の追加が認められたら、アクセス権を適切な動的ポリシー・ファイルに追加します。
![[IBM i]](../images/iseries.gif)
![[z/OS]](../images/ngzos.gif)
grant codeBase "file:user_client_installed_location" {
permission java.io.FilePermission
"${was.install.root}$(/)java$(/)jre$(/)lib$(/)ext$(/)mail.jar", "read";
};
前述のアクセス権に関する情報行は、表示上の理由で分割されています。アクセス権は、1 行で入力してください。
アクセス権を追加するかどうかを判断するには、トピックJava 2 セキュリティーのアクセス制御例外を参照してください。