Oracle® Fusion Middleware Oracle WebLogic Server ロールおよびポリシーによるリソースの保護 11g リリース 1 (10.3.1) B55556-01 |
|
![]() 戻る |
![]() 次へ |
セキュリティ ポリシーとは、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 サーバに格納されます。
詳細セキュリティ モデルを使用する場合、ポリシーの場所はモデルのコンフィグレーション方法によって異なる。
「Web アプリケーションおよび EJB リソースの保護のオプション」を参照してください。
セキュリティ ポリシーに追加する各ユーザやグループは、アクティブなセキュリティ レルムにコンフィグレーションされた認証プロバイダのセキュリティ プロバイダ データベースに定義されている必要があります。追加する各ロールは、アクティブなセキュリティ レルムにコンフィグレーションされたロール マッピング プロバイダのセキュリティ プロバイダ データベースに定義されている必要があります。WebLogic Server のセキュリティ レルムは、WebLogic 認証プロバイダおよび WebLogic XACML ロール マッピング プロバイダを使用するようにコンフィグレーションされています。これらのプロバイダでは、ユーザ、グループ、およびロールを組み込み LDAP サーバに格納します。
WebLogic 認証、認可およびロール マッピング プロバイダの詳細については、『Oracle Fusion Middleware Oracle WebLogic Server Security の紹介』の「WebLogic セキュリティ プロバイダ」を参照してください。
ルート レベルのポリシーは、特定のリソース タイプの全インスタンスで継承されます。表 5-1 で、WebLogic Server に設定されたセキュリティ レルムに定義されているデフォルトのルート レベルのポリシーについて説明します。ここに示すポリシーで指定されているロールとグループについては、「 ユーザ、グループ、セキュリティ ロール」を参照してください。
注意 : ルート レベルのポリシーには Administration Console でアクセスできます。『Oracle Fusion Middleware Oracle WebLogic Server Administration Console ヘルプ』の「ルート レベルのポリシーの作成」を参照してください。 |
表 5-1 WebLogic リソースのデフォルト セキュリティ ポリシー
WebLogic リソース | セキュリティ ポリシー |
---|---|
管理リソース |
デフォルト グローバル ロール : |
アプリケーション リソース |
なし |
EIS (リソース アダプタ) リソース |
デフォルト グループ : |
EJB リソース |
デフォルト グループ : |
COM リソース |
なし |
JDBC リソース |
デフォルト グループ : |
JNDI リソース |
デフォルト グループ : |
JMS リソース |
デフォルト グループ : |
サーバ リソース |
デフォルト グローバル ロール :
|
ワーク コンテキスト |
デフォルト グループ : |
URL リソース |
デフォルト グループ : |
Web サービス リソース |
デフォルト グループ : |
警告 : 管理リソースとサーバ リソースのデフォルトのルート レベルのポリシーを変更して制約をさらに厳しくすることがないようにしてください。既存のセキュリティ ロールの一部を削除すると、WebLogic Server の動作に悪影響を与えることがあります。ただし、必要に応じて、デフォルト セキュリティ ポリシーにより多くを含めることはできます (たとえば、新しいセキュリティ ロールを追加するなど)。「一貫性のあるセキュリティ方式の維持」を参照してください。 |
ポリシーには、あるリソースに対して誰がアクセスできるのかを決定するために 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 によるアクセスが否定されます。
[サーバが開発モードである
] - リソースをホストするサーバが開発モードで動作している場合にアクセスを許可します。『Oracle WebLogic Server コンフィグレーション ウィザードを使用した WebLogic ドメインの作成』の「WebLogic ドメインの作成」を参照してください。
[全員に対してアクセスを許可
] - すべてのユーザ、グループ、およびロールにアクセスを許可します。
[全員に対してアクセスを拒否
] - すべてのユーザ、グループ、およびロールのアクセスを禁止します。
[要素に次のユーザの署名が必要
] - (Web サービスを保護する場合にのみ使用) Web サービスのオペレーションを呼び出す SOAP リクエスト メッセージ内の要素を誰がデジタル署名したかに基づいてセキュリティ ポリシー条件を作成します。たとえば、getBalance
オペレーションを、受信 SOAP リクエストの AccountNumber
要素が joe
という名前のユーザによってデジタル署名された場合にのみ呼び出すことができるという条件を作成できます。
[要素に次のユーザの署名が必要
] 条件を作成するには、次の情報を提供します。
SOAP 要素にグループまたはユーザによる署名が必要かどうかを指定する。
たとえば、要素に対してユーザによる署名が必要であると指定するには、user
と入力します。
要素に署名が必要なユーザまたはグループの名前。
デジタル署名が必要な SOAP メッセージ要素の名前。次の形式を使用します。
{ネームスペース}LocalPart
LocalPart
はデジタル署名が必要な SOAP メッセージの要素の名前で、「ネームスペース」はそのネームスペース
です。これらの値を取得するには、Web サービスの WSDL を使用します。
たとえば、
{http://schemas.xmlsoap.org/soap/envelope/}AccountNumber
注意 : デジタル署名されるように Web サービスの WS-Policy 内にすでにコンフィグレーションされている要素のみを指定できます。詳細については、『Oracle Fusion Middleware Oracle WebLogic Server Web サービスのセキュリティ』の「メッセージレベルのセキュリティのコンフィグレーション」を参照してください。 |
任意の日付と時刻の条件を使用する場合、他のいずれかの条件を追加してさらにユーザを制限しない限り、セキュリティ ポリシーではすべてのユーザに対して指定した日付または時刻のアクセスが許可されます。このリリースの WebLogic Server で使用できる日付と時間のポリシー条件は以下のとおりです。
[指定した時間帯にアクセスが発生
] - 指定した時間帯のアクセスを許可します。たとえば、ユーザに営業時間中のアクセスのみを許可する条件を作成できます。
[次の日時より後にアクセスが発生
] - 指定した時間より後のアクセスを許可します。たとえば、営業開始後など、ユーザに特定の日時よりも後のアクセスを許可する条件を作成できます。
[次の日時より前にアクセスが発生
] - 指定した時間より前のアクセスを許可します。たとえば、営業終了前など、ユーザに特定の日時よりも前のアクセスを許可する条件を作成できます。
[指定した曜日にアクセスが発生
] - 指定した曜日のアクセスを許可します。たとえば、ユーザに平日のアクセスを許可する条件を作成できます。
[指定した日にアクセスが発生
] - 月の特定の日付に発生したアクセスを許可します。たとえば、ユーザに毎月の 1 日にのみアクセスを許可する条件を作成できます。
[指定した日より後にアクセスが発生
] - 月の特定の日付より後に発生したアクセスを許可します。たとえば、ユーザに毎月 15 日より後にアクセスを許可する条件を作成できます。
[指定した日より前にアクセスが発生
] - 月の特定の日付より前に発生したアクセスを許可します。たとえば、ユーザに毎月 15 日になる前までアクセスを許可する条件を作成できます。
コンテキスト要素の条件を使用すると、HTTP サーブレット リクエスト属性、HTTP セッション属性、EJB メソッドのパラメータの値に基づいてセキュリティ ポリシーを作成できます。この情報は WebLogic Server によって ContextHandler オブジェクトから取得され、その値に基づいてポリシー条件を定義できます。こうした条件を使用する場合、使用しているコンテキストに属性またはパラメータと値のペアが確実に適用するようにするのはユーザの役目です。詳細については、『Oracle Fusion Middleware Oracle WebLogic Server セキュリティ プロバイダの開発』の「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 の保護を使用して保護されます。したがって、以下の保護されているパブリック インタフェースとの対話では、通常、両方のセキュリティ方式を満たしている必要があります。
[WebLogic Server Administration Console] - WebLogic Security サービスでは、特定のユーザが Administration Console にアクセスできるかどうかをそのユーザのログイン時に検証します。アクセスの許されていない操作をユーザが呼び出そうとすると、アクセス拒否のエラーが表示されます。
このパブリック インタフェースの使用方法については、『Oracle Fusion Middleware Oracle WebLogic Server Administration Console ヘルプ』の「WebLogic Server Administration Console」を参照してください。
[Weblogic Scripting Tool] - Weblogic Scripting Tool (WLST) は、システム管理者やオペレータが、WebLogic Server インスタンスおよびドメインのモニタと管理に使用する、コマンドライン スクリプト インタフェースです。WebLogic Security サービスは、特定のユーザに WLST コマンド実行のパーミッションがあるかどうかをコマンドの呼び出し時に検証します。アクセスの許されていない操作をユーザが呼び出そうとすると、weblogic.management.NoAccessRuntimeException
が送出されます。この例外は、開発者がプログラムで明示的に捕捉できます。この例外はサーバによってそのログ ファイルに送信されますが、標準出力に例外を送信するよう、サーバをコンフィグレーションすることもできます。
このパブリック インタフェースの使用方法については、『Oracle Fusion Middleware Oracle WebLogic Scripting Tool ガイド』を参照してください。
注意 : WLST は、MBean API (後述) との対話を抽象化する便利なユーティリティです。したがって、WLST を使用して実行できる管理タスクは、MBean API を使用して実行することもできます。 |
MBean API - WebLogic Security サービスは、特定のユーザに API にアクセスするパーミッションがあるかどうかを、ユーザが MBean の操作を実行するときに検証します。アクセスの許されていない操作をユーザが呼び出そうとすると、weblogic.management.NoAccessRuntimeException
が送出されます。この例外は、開発者がプログラムで明示的に捕捉できます。この例外はサーバによってそのログ ファイルに送信されますが、標準出力に例外を送信するよう、サーバをコンフィグレーションすることもできます。
こうした API の使用方法については、『Oracle Fusion Middleware Oracle WebLogic Server JMX によるカスタム管理ユーティリティの開発』の「WebLogic Server MBean について」を参照してください。
注意 : この節では、WebLogic 認可プロバイダまたは WebLogic XACML 認可プロバイダを使用するセキュリティ レルムで利用可能な機能について説明します。お使いのセキュリティ レルムでサード パーティ製の認可プロバイダを使用する場合は、サード パーティのドキュメントでプロバイダ データベースへのポリシーの追加方法について参照してください。 |
WebLogic Administration Console を使用して、セキュリティ ポリシーの作成や変更のために WebLogic リソースにアクセスできます。詳細については、『Oracle Fusion Middleware Oracle WebLogic Server Administration Console ヘルプ』の「セキュリティ ポリシーの管理」を参照してください。