|
セキュリティ ポリシーとは、WebLogic Server リソースに誰がアクセスできるのかを指定するものです。「Admin ロールのユーザにアクセスを許可する」といった簡単なポリシーや、「Admin ロールのユーザに 8 時から 5 時の間だけアクセスを許可する」といった複雑なポリシーを作成することができます。
この章では、セキュリティ ポリシーの特長と機能について説明します。
セキュリティ ポリシーによる複数のリソースの保護については、「ポリシーを使用して複数のリソースを保護する」を参照してください。
Web アプリケーション リソースおよび EJB リソース以外のすべてのリソースに対するセキュリティ ポリシーは、常にデフォルトの (アクティブな) セキュリティ レルムにコンフィグレーションされた認可プロバイダのセキュリティ プロバイダ データベースに保持されます。WebLogic Server が提供するセキュリティ レルムによって、ポリシーが組み込み 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 の動作に悪影響を与えることがあります。ただし、必要に応じて、デフォルト セキュリティ ポリシーにより多くを含めることはできます (たとえば、新しいセキュリティ ロールを追加するなど)。「一貫性のあるセキュリティ方式の維持」を参照してください。 |
ポリシーには、あるリソースに対して誰がアクセスできるのかを決定するために 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 サービスを保護する場合にのみ使用) Web サービスのオペレーションを呼び出す SOAP リクエスト メッセージ内の要素を誰がデジタル署名したかに基づいてセキュリティ ポリシー条件を作成します。たとえば、getBalance
オペレーションを、受信 SOAP リクエストの AccountNumber
要素が joe
という名前のユーザによってデジタル署名された場合にのみ呼び出すことができるという条件を作成できます。
[要素に次のユーザの署名が必要] 条件を作成するには、次の情報を提供します。
たとえば、要素に対してユーザによる署名が必要であると指定するには、user
と入力します。
{
ネームスペース}
LocalPart
例 :{http://schemas.xmlsoap.org/soap/envelope/}AccountNumber
注意 : | デジタル署名されるように Web サービスの WS-Policy 内にすでにコンフィグレーションされている要素のみを指定できます。詳細については、『WebLogic Web サービス プログラマーズ ガイド』の「メッセージレベルのセキュリティのコンフィグレーション」を参照してください。 |
任意の日付と時刻の条件を使用する場合、他のいずれかの条件を追加してさらにユーザを制限しない限り、セキュリティ ポリシーではすべてのユーザに対して指定した日付または時刻のアクセスが許可されます。このリリースの 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 の保護を使用して保護されます。したがって、以下の保護されているパブリック インタフェースとの対話では、通常、両方のセキュリティ方式を満たしている必要があります。
このパブリック インタフェースの使用方法については、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 オンライン ヘルプの「セキュリティ ポリシーの管理」を参照してください。