始める前に
このフィーチャーは、デフォルトでは使用不可になっていますが、グローバル・セキュリティーが使用可能になっている場合には、自動的に使用可能になります。
ただし、Java 2 セキュリティーは Java 2 Platform, Enterprise Edition (J2EE) の役割ベースのセキュリティーと直交しているため、グローバル・セキュリティーとは別個に使用不可または使用可能にすることができます。
Java 2 セキュリティーは、J2EE 役割ベースの許可の上部に、アクセス制御保護の追加のレベルを提供しています。
特に、システム・リソースおよびアプリケーション・プログラミング・インターフェース (API) の保護に対応しています。
管理者は、Java 2 セキュリティーを使用不可にした場合のリスクに対する利点を比較検討する必要があります。
以下に示した推奨事項は、テスト環境または実稼働環境において Java 2 セキュリティーを使用可能にするのに役立ちます。
- アプリケーションは必ず、Java 2 セキュリティー・プログラミング・モデルにより開発してください。
開発者は、アプリケーションで使用されている API が Java 2 セキュリティーによって保護されているかどうかを
把握しておく必要があります。
使用されている API に必要なアクセス権が、ポリシー・ファイル (was.policy) で宣言されていることが非常に重要です。これが宣言されていないアプリケーションは、Java 2 セキュリティーが使用可能な場合に実行に失敗します。
開発者は、Java 2 セキュリティーで保護されている Development Kit API の Web サイトを参照することができます。
この Web サイトを参照するには、トピックセキュリティー: 学習用リソース
のプログラミング・モデルおよび決定のセクションを参照してください。
- 前のリリースからマイグレーションされたアプリケーションに、必要なアクセス権が与えられていることを確認してください。
Java 2 セキュリティーは、WebSphere Application Server の前のリリースではサポートされていないか、あるいは部分的にしかサポートされていないため、バージョン 5 より以前に開発されたアプリケーションは、ほとんど Java 2 セキュリティー・プログラミング・モデルを使用していません。
そのアプリケーションに必要なアクセス権をすべて検出するのは、容易ではありません。
以下のアクティビティーを実行すると、アプリケーションに必要な追加のアクセス権を判別できます。
- コードの検討およびコードの検査
- アプリケーション資料の検討
- 実動前の環境で Java 2 セキュリティーが使用可能になっているマイグレーション済みエンタープライズ・アプリケーションのサンドボックス・テスト。
WebSphere Java 2 セキュリティー・マネージャーでトレースを使用可能にすると、アプリケーション・ポリシー・ファイルに不足しているアクセス権を判別するのに役立ちます。
トレースの指定は、com.ibm.ws.security.core.SecurityManager=all=enabled です。
- com.ibm.websphere.java2secman.norethrow システム・プロパティーを使用して、デバッグを補助します。
このプロパティーは、実稼働環境では使用しないでください。
アプリケーションのデフォルトのアクセス権セットは、J2EE 1.3 仕様で定義された、推奨されるアクセス権セットです。
このデフォルトは、全ユーザーにアクセス権を認可する Development Kit ポリシー・ファイル (JAVA_HOME/jre/lib/security/java.policy) に定義されているアクセス権を持つ app_server_root/profiles/profile_name/config/cells/cell_name/nodes/node_name/app.policy ポリシー・ファイルで宣言されています。ただし、アプリケーションでは、profiles/profile_name/config/cells/cell_name/filter.policy ファイルで宣言されるアクセス権は拒否されます。
filter.policy ファイルで宣言されている、アプリケーションに対するアクセス権は、アクセス権の検証中に、フィルター操作により除外されます。
アプリケーションに必要なアクセス権を was.policy ファイルに定義し、その was.policy ファイルを YOURAPP.ear/META-INF/was.policy としてアプリケーション・エンタープライズ・アーカイブ (EAR) ファイルに組み込みます。詳しくは、Java 2 セキュリティー・ポリシー・ファイルの構成
を参照してください。
以下のステップは、WebSphere Application Server Network Deployment のセル・レベル、および WebSphere Application Server および WebSphere Application Server Express のサーバー・レベルで、Java 2 セキュリティーを強制する方法について説明しています。
次の作業
Java 2 Security Manager の拡張により、アプリケーションがリソースへのアクセスを拒否された場合に、呼び出しスタック上のすべてのクラスに認可されている Java 2 セキュリティー・アクセス権がダンプされます。
java.security.AccessControlException 例外が作成されます。ただし、このトレース機能は、デフォルトでは使用不可になっています。
トレースの指定が
com.ibm.ws.security.core.SecurityManager=all=enabled になっているサーバー・トレース・サービスを指定して、この機能を使用可能にすることができます。
例外が作成されると、トレース・ダンプは、Java 2 が保護しているリソースにアクセスする際に、アプリケーションのアクセス権が欠落しているのか、または使用されている製品のランタイム・コードかサード・パーティー・ライブラリーが正しく
特権ありとマークされていないのかどうかを判断するヒントを提供します。
詳しくは、
セキュリティー問題判別ガイドを参照してください。