Oracle® Fusion Middleware Oracle WebLogic Serverロールおよびポリシーによるリソースの保護 11g リリース1 (10.3.5) B55556-03 |
|
![]() 前 |
![]() 次 |
セキュリティ・ポリシーとは、WebLogic Serverリソースに誰がアクセスできるのかを指定するものです。「Adminロールのユーザーにアクセスを許可する」といった簡単なポリシーや、「Adminロールのユーザーに8時から5時の間だけアクセスを許可する」といった複雑なポリシーを作成することができます。
この章では、セキュリティ・ポリシーの特長と機能について説明します。
セキュリティ・ポリシーによる複数のリソースの保護については、「ポリシーを使用して複数のリソースの保護」を参照してください。
Webアプリケーション・リソースおよびEJBリソース以外のすべてのリソースに対するセキュリティ・ポリシーは、常にデフォルトの(アクティブな)セキュリティ・レルムに構成された認可プロバイダのセキュリティ・プロバイダ・データベースに保持されます。WebLogic Serverが提供するセキュリティ・レルムによって、ポリシーが組込みLDAPサーバーに格納されます。
Webアプリケーション・リソースおよびEJBリソースのポリシーの場所は、以下のように場合によって変わります。
JACC (JSR 115で定義されているJava Authorization Contract for Containers)を使用したセキュリティを実装する場合、ポリシーはWebアプリケーションまたはEJBのデプロイメント記述子内に格納されます。
DDOnlyモデルを使用してWebアプリケーションまたはEJBを保護する場合、ポリシーはデプロイメント記述子内に格納されます。
記述子にあるポリシーを無視するセキュリティ・モデルを使用する場合、ポリシーの格納先は認可プロバイダによって決定されます。WebLogic Serverが提供するセキュリティ・レルムによって、ポリシーが組込みLDAPサーバーに格納されます。
詳細セキュリティ・モデルを使用する場合、ポリシーの場所はモデルの構成方法によって異なります。
第4章「WebアプリケーションおよびEJBリソースの保護のオプション」を参照してください。
セキュリティ・ポリシーに追加する各ユーザーやグループは、アクティブなセキュリティ・レルムに構成された認証プロバイダのセキュリティ・プロバイダ・データベースに定義されている必要があります。追加する各ロールは、アクティブなセキュリティ・レルムに構成されたロール・マッピング・プロバイダのセキュリティ・プロバイダ・データベースに定義されている必要があります。WebLogic Serverのセキュリティ・レルムは、WebLogic認証プロバイダおよびWebLogic XACMLロール・マッピング・プロバイダを使用するように構成されています。これらのプロバイダでは、ユーザー、グループ、およびロールを組込みLDAPサーバーに格納します。
WebLogic認証、認可およびロール・マッピング・プロバイダの詳細は、『Oracle WebLogic Serverセキュリティの理解』のWebLogicセキュリティ・プロバイダに関する項を参照してください。
ルート・レベルのポリシーは、特定のリソース・タイプの全インスタンスで継承されます。表5-1で、WebLogic Serverに設定されたセキュリティ・レルムに定義されているデフォルトのルート・レベルのポリシーについて説明します。ここに示すポリシーで指定されているロールとグループについては、第6章「ユーザー、グループ、セキュリティ・ロール」を参照してください。
表5-1 WebLogicリソースのデフォルト・セキュリティ・ポリシー
WebLogicリソース | セキュリティ・ポリシー |
---|---|
管理リソース |
デフォルト・グローバル・ロール: |
アプリケーション・リソース |
なし |
EIS (リソース・アダプタ)リソース |
デフォルト・グループ: |
EJBリソース |
デフォルト・グループ: |
COMリソース |
なし |
JDBCリソース |
デフォルト・グループ: |
JNDIリソース |
デフォルト・グループ: |
JMSリソース |
デフォルト・グループ: |
サーバー・リソース |
デフォルト・グローバル・ロール:
|
ワーク・コンテキスト |
デフォルト・グループ: |
URLリソース |
デフォルト・グループ: |
Webサービス・リソース |
デフォルト・グループ: |
警告: 管理リソースとサーバー・リソースのデフォルトのルート・レベルのポリシーを変更して制約をさらに厳しくすることがないようにしてください。既存のセキュリティ・ロールの一部を削除すると、WebLogic Serverの動作に悪影響を与えることがあります。ただし、必要に応じて、デフォルト・セキュリティ・ポリシーにより多くを含めることはできます(たとえば、新しいセキュリティ・ロールを追加するなど)。「一貫性のあるセキュリティ方式の維持」を参照してください。 |
ポリシーには、あるリソースに対して誰がアクセスできるのかを決定するために1つまたは複数の条件が指定されます。もっとも基本的なポリシーには、セキュリティ・ロールまたはプリンシパルの名前が指定されています。たとえば、グローバル・ロール「Admin」のみが指定されているような形です。このポリシーは、WebLogicセキュリティ・サービスによって実行時に「Adminロールのユーザーにアクセスを許可する」と解釈されます。さらに複雑な条件を作成することも可能で、そうした条件を論理演算子ANDやOR (非排他的なOR)で組み合せることもできます。また、どの条件も否定が可能で、それによって特定の条件下におけるアクセスを禁止できます。
管理コンソールには、WebLogic Server認可プロバイダに組み込まれている以下の3種類のポリシー条件が表示されます。
注意: 以下の節では、WebLogic認可プロバイダまたはWebLogic XACML認可プロバイダを使用するレルムで利用できる条件について説明します。お使いのセキュリティ・レルムでサード・パーティ製の認可プロバイダを使用する場合は、サード・パーティのドキュメントでこの機能について参照してください。 |
このリリースのWebLogic Serverで使用できる基本的なポリシー条件は以下のとおりです。
ユーザー
- 指定したユーザーにリソースへのアクセスを許可します。たとえば、ユーザーJohn
だけがDeposit
EJBにアクセスできるという条件を作成できます。
グループ
- 指定したグループ内のすべてのユーザーやグループにリソースへのアクセスを許可します。ただし、「ユーザー」条件や「ロール」条件と「グループ」条件が矛盾する場合を除きます。
ロール
- 指定したロールに定義されたすべてのユーザーやグループにリソースへのアクセスを許可します。ただし、「ユーザー」または「グループ」条件と「ロール」条件が矛盾する場合を除きます。たとえば、「Admin」を指定した「ロール」条件と「joe」を否定する「ユーザー」条件を作成した場合、ユーザーjoeがAdminロールに定義されていてもjoeによるアクセスが拒否されます。
サーバーが開発モードである
- リソースをホストするサーバーが開発モードで動作している場合にアクセスを許可します。『構成ウィザードを使用したドメインの作成』のWebLogicドメインの作成に関する項を参照してください。
全員に対してアクセスを許可
- すべてのユーザー、グループ、およびロールにアクセスを許可します。
全員に対してアクセスを拒否
- すべてのユーザー、グループ、およびロールのアクセスを禁止します。
要素に次のユーザーの署名が必要
- (Webサービスを保護する場合にのみ使用) Webサービス操作を呼び出すSOAPリクエスト・メッセージ内の要素を誰がデジタル署名したかに基づいてセキュリティ・ポリシー条件を作成します。たとえば、getBalance
操作を、受信SOAPリクエストのAccountNumber
要素がjoe
という名前のユーザーによってデジタル署名された場合にのみ呼び出すことができるという条件を作成できます。
要素に次のユーザーの署名が必要
条件を作成するには、次の情報を提供します。
SOAP要素にグループまたはユーザーによる署名が必要かどうかを指定します。
たとえば、要素に対してユーザーによる署名が必要であると指定するには、user
と入力します。
要素に署名が必要なユーザーまたはグループの名前。
デジタル署名が必要なSOAPメッセージ要素の名前。次の形式を使用します。
{Namespace}LocalPart
LocalPart
はデジタル署名が必要なSOAPメッセージの要素の名前で、「ネームスペース」はそのネームスペース
です。これらの値を取得するには、WebサービスのWSDLを使用します。
例:
{http://schemas.xmlsoap.org/soap/envelope/}AccountNumber
注意: デジタル署名されるようにWebサービスのWS-Policy内にすでに構成されている要素のみを指定できます。詳細は、『Oracle WebLogic Server WebLogic Webサービスの保護』のメッセージ・レベルのセキュリティの構成に関する項を参照してください。 |
任意の日付と時刻の条件を使用する場合、他のいずれかの条件を追加してさらにユーザーを制限しない限り、セキュリティ・ポリシーではすべてのユーザーに対して指定した日付または時刻のアクセスが許可されます。このリリースのWebLogic Serverで使用できる日付と時間のポリシー条件は以下のとおりです。
指定した時間帯にアクセスが発生
- 指定した時間帯のアクセスを許可します。たとえば、ユーザーに営業時間中のアクセスのみを許可する条件を作成できます。
次の日時より後にアクセスが発生
- 指定した時間より後のアクセスを許可します。たとえば、営業開始後など、ユーザーに特定の日時よりも後のアクセスを許可する条件を作成できます。
次の日時より前にアクセスが発生
- 指定した時間より前のアクセスを許可します。たとえば、営業終了前など、ユーザーに特定の日時よりも前のアクセスを許可する条件を作成できます。
指定した曜日にアクセスが発生
- 指定した曜日のアクセスを許可します。たとえば、ユーザーに平日のアクセスを許可する条件を作成できます。
指定した日にアクセスが発生
- 月の特定の日付に発生したアクセスを許可します。たとえば、ユーザーに毎月の1日にのみアクセスを許可する条件を作成できます。
指定した日より後にアクセスが発生
- 月の特定の日付より後に発生したアクセスを許可します。たとえば、ユーザーに毎月15日より後にアクセスを許可する条件を作成できます。
指定した日より前にアクセスが発生
- 月の特定の日付より前に発生したアクセスを許可します。たとえば、ユーザーに毎月15日になる前までアクセスを許可する条件を作成できます。
注意: 「指定した時間帯にアクセスが発生」 などの時刻のポリシー条件に時刻を指定する形式は、ロケールによって異なります。英語版のWebLogic Serverでは、WebLogic Serverインスタンスのローカル・タイム・ゾーンを使用して、12時間形式でhh:mm:ss AM|PM のように表します。たとえば、午後8:30を指定するには、08:30:00 PM という形式を使用します。 |
コンテキスト要素の条件を使用すると、HTTPサーブレット・リクエスト属性、HTTPセッション属性、EJBメソッドのパラメータの値に基づいてセキュリティ・ポリシーを作成できます。この情報はWebLogic ServerによってContextHandlerオブジェクトから取得され、その値に基づいてポリシー条件を定義できます。こうした条件を使用する場合、使用しているコンテキストに属性またはパラメータと値のペアが確実に適用するようにするのはユーザーの役目です。詳細は、『Oracle WebLogic Serverセキュリティ・プロバイダの開発』のContextHandlerとWebLogicリソースに関する項を参照してください。
このリリースのWebLogic Serverで使用できるコンテキスト要素のロール条件は以下のとおりです。
コンテキスト要素が定義されている
- 指定した属性またはパラメータに基づいてアクセスを許可します。
コンテキスト要素の値が数値定数と等しい
- 指定した属性またはパラメータの数値(またはdouble型の数値を表す文字列)が、指定したdouble
型の数値と等しいことに基づいてアクセスを許可します。
コンテキスト要素の値が数値定数より大きい
- 指定した属性またはパラメータの数値(またはdouble型の数値を表す文字列)が、指定したdouble
型の数値よりも大きいことに基づいてアクセスを許可します。
コンテキスト要素の値が数値定数より小さい
- 指定した属性またはパラメータの数値(またはdouble型の数値を表す文字列)が、指定したdouble
型の数値よりも小さいことに基づいてアクセスを許可します。
コンテキスト要素の値が文字列定数と等しい
- 指定した属性またはパラメータの文字列値が、指定した文字列と等しいことに基づいてアクセスを許可します。
Weblogic Server管理コンソール、Weblogic Scripting Tool (WLST)、およびMBean APIは、デフォルト・セキュリティ・ポリシーによって保護されます。デフォルト・セキュリティ・ポリシーは、表6-2で説明したデフォルト・グローバル・ロールおよびデフォルト・グループに基づきます。したがって、以下の保護されているパブリック・インタフェースとの対話では、通常、両方のセキュリティ方式を満たしている必要があります。また、MBeanとの対話が必要な管理操作は、「一貫性のあるセキュリティ方式の維持」で説明されているMBeanの保護を使用して保護されます。したがって、以下の保護されているパブリック・インタフェースとの対話では、通常、両方のセキュリティ方式を満たしている必要があります。
「WebLogic Server管理コンソール」 - WebLogicセキュリティ・サービスでは、特定のユーザーが管理コンソールにアクセスできるかどうかをそのユーザーのログイン時に検証します。アクセスの許されていない操作をユーザーが呼び出そうとすると、アクセス拒否のエラーが表示されます。
このパブリック・インタフェースの使用方法については、Oracle WebLogic Server管理コンソール・ヘルプの「WebLogic Server管理コンソール」を参照してください。
Weblogic Scripting Tool - Weblogic Scripting Tool (WLST)は、システム管理者やオペレータが、WebLogic Serverインスタンスおよびドメインのモニターと管理に使用する、コマンド・ライン・スクリプト・インタフェースです。WebLogicセキュリティ・サービスは、特定のユーザーにWLSTコマンド実行のパーミッションがあるかどうかをコマンドの呼出し時に検証します。アクセスの許されていない操作をユーザーが呼び出そうとすると、weblogic.management.NoAccessRuntimeException
が送出されます。この例外は、開発者がプログラムで明示的に捕捉できます。この例外はサーバーによってそのログ・ファイルに送信されますが、標準出力に例外を送信するよう、サーバーを構成することもできます。
このパブリック・インタフェースの使用方法については、『Oracle WebLogic Scripting Tool』を参照してください。
注意: WLSTは、MBean API (後述)との対話を抽象化する便利なユーティリティです。したがって、WLSTを使用して実行できる管理タスクは、MBean APIを使用して実行することもできます。 |
MBean API - WebLogicセキュリティ・サービスは、特定のユーザーにAPIにアクセスするパーミッションがあるかどうかを、ユーザーがMBeanの操作を実行するときに検証します。アクセスの許されていない操作をユーザーが呼び出そうとすると、weblogic.management.NoAccessRuntimeException
が送出されます。この例外は、開発者がプログラムで明示的に捕捉できます。この例外はサーバーによってそのログ・ファイルに送信されますが、標準出力に例外を送信するよう、サーバーを構成することもできます。
こうしたAPIの使用方法については、『Oracle WebLogic Server JMXによるカスタム管理ユーティリティの開発』のWebLogic Server MBeanに関する項を参照してください。
注意: この節では、WebLogic認可プロバイダまたはWebLogic XACML認可プロバイダを使用するセキュリティ・レルムで利用可能な機能について説明します。お使いのセキュリティ・レルムでサード・パーティ製の認可プロバイダを使用する場合は、サード・パーティのドキュメントでプロバイダ・データベースへのポリシーの追加方法について参照してください。 |
WebLogic管理コンソールを使用して、セキュリティ・ポリシーの作成や変更のためにWebLogicリソースにアクセスできます。詳細は、Oracle WebLogic Server管理コンソール・ヘルプの「セキュリティ・ポリシーの管理」を参照してください。