WebLogic リソースのセキュリティ
セキュリティ ポリシーとは、WebLogic Server リソースに誰がアクセスできるのかを指定するものです。「Admin ロールのユーザにアクセスを許可する」といった簡単なポリシーや、「Admin ロールのユーザに 8 時から 5 時の間だけアクセスを許可する」といった複雑なポリシーを作成することができます。
この章では、セキュリティ ポリシーの特長と機能について説明します。
セキュリティ ポリシーは常に WebLogic リソースを対象としますが、WebLogic リソースは階層化されているので、自由なレベルで定義できます。
特定のリソース タイプの全インスタンスに適用するポリシーとして、ルート レベルのポリシーを作成できます (その WebLogic リソースで新規に作成されたインスタンスではすべてこのセキュリティ ポリシーが継承されます)。たとえば、ドメイン内のすべての JMS リソースで継承されるルート レベルのポリシーを定義するといったことが可能です。このようにセキュリティ ポリシーを継承すると、複数の WebLogic リソースを効率的に保護できます。WebLogic Server には、デフォルトで定義されているルート レベルのポリシーのセットがあります。「デフォルトのルート レベルのセキュリティ ポリシー」を参照してください。
また、特定のリソース インスタンスに適用されるポリシーを作成することもできます。インスタンスに、他のリソースが含まれている場合、ポリシーはその含まれているリソースにも適用されます。たとえば、エンタープライズ アプリケーション (EAR) 全体、複数の EJB を含む EJB JAR、その JAR の中の特定の EJB、その EJB の中の 1 つのメソッドなどに対して、ポリシーを作成できます。
スコープが狭い方のポリシーが、広い方のポリシーをオーバーライドします。たとえば、EAR に対するセキュリティ ポリシーとその EAR 内の EJB に対するセキュリティ ポリシーを作成した場合、EJB は自身のポリシーで保護され、EAR に対するポリシーはその EJB には適用されません。
Web アプリケーション リソースおよび EJB リソース以外のすべてのリソースに対するセキュリティ ポリシーは、常にデフォルトの (アクティブな) セキュリティ レルムにコンフィグレーションされた認可プロバイダのセキュリティ プロバイダ データベースに保持されます。WebLogic Server のセキュリティ レルムは、WebLogic XACML 認可プロバイダを使用するようにコンフィグレーションされています。このプロバイダでは、ポリシーを組み込み LDAP サーバに格納します。
Web アプリケーション リソースおよび EJB リソースのポリシーの場所は、以下のように場合によって変わります。
「Web アプリケーションおよび EJB リソースの保護のオプション」を参照してください。
セキュリティ ポリシーに追加する各ユーザやグループは、アクティブなセキュリティ レルムにコンフィグレーションされた認証プロバイダのセキュリティ プロバイダ データベースに定義されている必要があります。追加する各ロールは、アクティブなセキュリティ レルムにコンフィグレーションされたロール マッピング プロバイダのセキュリティ プロバイダ データベースに定義されている必要があります。WebLogic Server のセキュリティ レルムは、WebLogic 認証プロバイダおよび WebLogic XACML ロール マッピング プロバイダを使用するようにコンフィグレーションされています。これらのプロバイダでは、ユーザ、グループ、およびロールを組み込み LDAP サーバに格納します。
WebLogic 認証、認可、およびロール マッピング プロバイダの詳細については、『WebLogic Security について』の「WebLogic セキュリティ プロバイダ」を参照してください。
ルート レベルのポリシーは、特定のリソース タイプの全インスタンスで継承されます。表 5-1 で、WebLogic Server に設定されたセキュリティ レルムに定義されているデフォルトのルート レベルのポリシーについて説明します。ここに示すポリシーで指定されているロールとグループについては、「ユーザ、グループ、セキュリティ ロール」を参照してください。
注意 : ルート レベルのポリシーには Administration Console でアクセスできます。Administration Console オンライン ヘルプの「ルート レベルのポリシーの作成」を参照してください。
警告 : 管理リソースとサーバ リソースのデフォルトのルート レベルのポリシーを変更して制約をさらに厳しくすることがないようにしてください。既存のセキュリティ ロールの一部を削除すると、WebLogic Server の動作に悪影響を与えることがあります。ただし、必要に応じて、デフォルト セキュリティ ポリシーにより多くを含めることはできます (たとえば、新しいセキュリティ ロールを追加するなど)。「MBean セキュリティ レイヤ」を参照してください。
ポリシーには、あるリソースに対して誰がアクセスできるのかを決定するために 1 つまたは複数の条件が指定されます。もっとも基本的なポリシーには、セキュリティ ロールまたはプリンシパルの名前が指定されています。たとえば、グローバル ロール「Admin」のみが指定されているような形です。このポリシーは、WebLogic Security サービスによって実行時に「Admin ロールのユーザにアクセスを許可する」と解釈されます。さらに複雑な条件を作成することも可能で、そうした条件を論理演算子 AND や OR (非排他的な OR) で組み合わせることもできます。また、どの条件も否定が可能で、それによって特定の条件下におけるアクセスを禁止できます。
Administration Console には、WebLogic Server 認可プロバイダに組み込まれている以下の 3 種類のポリシー条件が表示されます。
注意 : 以下の節では、WebLogic 認可プロバイダまたは WebLogic XACML 認可プロバイダを使用するレルムで利用できる条件について説明します。お使いのセキュリティ レルムでサードパーティ製の認可プロバイダを使用する場合は、サードパーティのドキュメントでこの機能について参照してください。
このリリースの WebLogic Server で使用できる基本的なポリシー条件は以下のとおりです。
ユーザ
] - 指定したユーザにリソースへのアクセスを許可します。たとえば、ユーザ John
だけが Deposit
EJB にアクセスできるという条件を作成できます。グループ
] - 指定したグループ内のすべてのユーザやグループにリソースへのアクセスを許可します。ただし、[ユーザ] 条件や [ロール] 条件と [グループ] 条件が矛盾する場合を除きます。ロール
] - 指定したロールに定義されたすべてのユーザやグループにリソースへのアクセスを許可します。ただし、[ユーザ] 条件や [グループ] 条件と [ロール] 条件が矛盾する場合を除きます。たとえば、「Admin」を指定した [ロール] 条件と「joe」を否定する [ユーザ] 条件を作成した場合、ユーザ joe が Admin ロールに定義されていても joe によるアクセスが否定されます。サーバが開発モードである
] - リソースをホストするサーバが開発モードで動作している場合にアクセスを許可します。『コンフィグレーション ウィザードを使用した WebLogic ドメインの作成』の「ドメイン起動モードの相違点」を参照してください。全員に対してアクセスを許可
] - すべてのユーザおよびグループにアクセスを許可します。全員に対してアクセスを拒否
] - すべてのユーザおよびグループのアクセスを禁止します。 [要素に次のユーザの署名が必要]
- Web サービス操作を呼び出す SOAP リクエスト メッセージ内の要素を誰がデジタル署名したかに基づいてセキュリティ ポリシー条件を作成します。たとえば、getBalance
操作を、受信 SOAP リクエストの AccountNumber
要素が BankTeller
セキュリティ ロールによってデジタル署名された場合にのみ呼び出すことができるという条件を作成できます。 任意の日付と時刻の条件を使用する場合、他のいずれかの条件を追加してさらにユーザを制限しない限り、セキュリティ ポリシーではすべてのユーザに対して指定した日付または時刻のアクセスが許可されます。このリリースの WebLogic Server で使用できる日付と時間のポリシー条件は以下のとおりです。
指定した時間帯にアクセスが発生
] - 指定した時間帯のアクセスを許可します。たとえば、ユーザに営業時間中のアクセスのみを許可する条件を作成できます。 次の日時より後にアクセスが発生
] - 指定した時間より後のアクセスを許可します。たとえば、ユーザに営業開始後などの特定の日時よりも後のアクセスを許可する条件を作成できます。次の日時より前にアクセスが発生
- 指定した時間より前のアクセスを許可します。たとえば、ユーザに営業終了前などの特定の日時よりも前のアクセスを許可する条件を作成できます。指定した曜日にアクセスが発生
] - 指定した曜日のアクセスを許可します。たとえば、ユーザに平日のアクセスを許可する条件を作成できます。指定した日にアクセスが発生
] - 月の特定の日付に発生したアクセスを許可します。たとえば、ユーザに毎月の 1 日にのみアクセスを許可する条件を作成できます。 指定した日より後にアクセスが発生
] - 月の特定の日付より後に発生したアクセスを許可します。たとえば、ユーザに毎月 15 日より後にアクセスを許可する条件を作成できます。指定した日より前にアクセスが発生
] - 月の特定の日付より前に発生したアクセスを許可します。たとえば、ユーザに毎月 15 日になる前までアクセスを許可する条件を作成できます。コンテキスト要素の条件を使用すると、HTTP サーブレット リクエスト属性、HTTP セッション属性、EJB メソッドのパラメータの値に基づいてセキュリティ ポリシーを作成できます。この情報は WebLogic Server によって ContextHandler オブジェクトから取得され、その値に基づいてポリシー条件を定義できます。こうした条件を使用する場合、使用しているコンテキストに属性またはパラメータと値のペアが確実に適用するようにするのはユーザの役目です。詳細については、『WebLogic セキュリティ プロバイダの開発』の「ContextHandler と WebLogic リソース」を参照してください。
このリリースの WebLogic Server で使用できるコンテキスト要素のポリシー条件は以下のとおりです。
コンテキスト要素が定義されている
] - 指定した属性またはパラメータに基づいてアクセスを許可します。コンテキスト要素の値が数値定数と等しい
] - 指定した属性またはパラメータの数値 (または double 型の数値を表す文字列) が、指定した double
型の数値と等しいことに基づいてアクセスを許可します。コンテキスト要素の値が数値定数より大きい
] - 指定した属性またはパラメータの数値 (または double 型の数値を表す文字列) が、指定した double
型の数値よりも大きいことに基づいてアクセスを許可します。コンテキスト要素の値が数値定数より小さい
] - 指定した属性またはパラメータの数値 (または double 型の数値を表す文字列) が、指定した double
型の数値よりも小さいことに基づいてアクセスを許可します。コンテキスト要素の値が文字列定数と等しい
] - 指定した属性またはパラメータの文字列値が、指定した文字列と等しいことに基づいてアクセスを許可します。
WebLogic Server Administration Console、WebLogic Scripting Tool (WLST)、および MBean API は、デフォルト セキュリティ ポリシーによって保護されます。デフォルト セキュリティ ポリシーは、表 6-2 で説明したデフォルト グローバル ロールおよびデフォルト グループに基づきます。したがって、Administration Console を使用するためには、ユーザはデフォルト グループのいずれかに属しているか、グローバル ロールが付与されていなければなりません。また、MBean との対話が必要な管理操作は、「MBean セキュリティ レイヤ」で説明されている MBean の保護を使用して保護されます。したがって、以下の保護されているパブリック インタフェースとの対話では、通常、両方のセキュリティ方式を満たしている必要があります。
このパブリック インタフェースの使用方法については、Administration Console オンライン ヘルプの「WebLogic Server Administration Console」を参照してください。
weblogic.management.NoAccessRuntimeException
が送出されます。この例外は、開発者がプログラムで明示的に捕捉できます。この例外はサーバによってそのログ ファイルに送信されますが、標準出力に例外を送信するよう、サーバをコンフィグレーションすることもできます。 このパブリック インタフェースの使用方法については、『WebLogic Scripting Tool ガイド』を参照してください。
注意 : WLST は、MBean API (後述) との対話を抽象化する便利なユーティリティです。したがって、WLST を使用して実行できる管理タスクは、MBean API を使用して実行することもできます。
weblogic.management.NoAccessRuntimeException
が送出されます。この例外は、開発者がプログラムで明示的に捕捉できます。この例外はサーバによってそのログ ファイルに送信されますが、標準出力に例外を送信するよう、サーバをコンフィグレーションすることもできます。 こうした API の使用方法については、『JMX によるカスタム管理ユーティリティの開発』の「WebLogic Server MBean について」を参照してください。
注意 : この節では、WebLogic 認可プロバイダまたは WebLogic XACML 認可プロバイダを使用するセキュリティ レルムで利用可能な機能について説明します。お使いのセキュリティ レルムでサードパーティ製の認可プロバイダを使用する場合は、サードパーティのドキュメントでプロバイダ データベースへのポリシーの追加方法について参照してください。
WebLogic Administration Console を使用して、セキュリティ ポリシーの作成や変更のために WebLogic リソースにアクセスできます。詳細については、Administration Console オンライン ヘルプの「セキュリティ ポリシーの管理」を参照してください。