WebLogic リソースのセキュリティ
![]() |
![]() |
![]() |
![]() |
この章では、セキュリティ ポリシーの特長と機能について説明します。
セキュリティ ポリシーは、権限のないアクセスから WebLogic リソースを保護するための、WebLogic リソースと 1 つまたは複数のユーザ、グループ、セキュリティ ロールとの関連付けです。
注意 : セキュリティ ポリシーは、以前のリリースの WebLogic Server で WebLogic リソースを保護するために使用していたアクセス制御リスト (access control lists : ACL) とパーミッションに代わるものです。
セキュリティ ポリシーは常に WebLogic リソースを対象としますが、WebLogic リソースは階層化されているので、自由なレベルで定義できます。たとえば、エンタープライズ アプリケーション (EAR) 全体、複数の EJB を含む EJB JAR、その JAR の中の特定の EJB、その EJB の中の 1 つのメソッドなどに対して、セキュリティ ポリシーを定義できます。
あるタイプの WebLogic リソース (EJB リソースなど) に対してセキュリティ ポリシーを作成すると、その WebLogic リソースのすべての新しいインスタンスはそのセキュリティ ポリシーを継承します。このようにセキュリティ ポリシーを継承すると、複数の WebLogic リソースを効率的に保護できます。WebLogic Server は、デフォルト セキュリティ ポリシーで各 WebLogic リソース タイプを保護しています。デフォルト セキュリティ ポリシーは、その WebLogic リソースのすべてのインスタンスによって継承されます。詳細については、「デフォルト セキュリティ ポリシー」を参照してください。
WebLogic リソースの特定のインスタンスに対して作成されたセキュリティ ポリシーは、その WebLogic リソース タイプに割り当てられているセキュリティ ポリシーをオーバーライドします。つまり、特定の EJB に対してセキュリティ ポリシーを作成すると、このセキュリティ ポリシーが使用され、EJB リソース タイプに対して作成したセキュリティ ポリシーは使用されません。
セキュリティ ポリシーは、デフォルト (アクティブな) セキュリティ レルムにコンフィグレーションされている認可プロバイダのセキュリティ プロバイダ データベースに格納されます。デフォルトでは、WebLogic 認可プロバイダがコンフィグレーションされ、セキュリティ ポリシーは組み込み LDAP サーバに格納されます。
ユーザまたはグループを使用してセキュリティ ポリシーを作成する場合、そのユーザまたはグループは、デフォルト セキュリティ レルムのコンフィグレーション済み認証プロバイダのセキュリティ プロバイダ データベースで定義されている必要があります。セキュリティ ロールを使用してセキュリティ ポリシーを作成する場合、そのセキュリティ ロール (グローバルまたはスコープ) は、デフォルト セキュリティ レルムのコンフィグレーション済みロール マッピング プロバイダのセキュリティ プロバイダ データベースで定義されている必要があります。デフォルトでは、WebLogic 認証プロバイダと WebLogic ロール マッピング プロバイダがコンフィグレーションされており、これらのセキュリティ プロバイダのデータベース (および組み込み LDAP サーバ) にはデフォルト グループとデフォルト グローバル ロールが格納されています。
WebLogic 認証、認可、およびロール マッピング プロバイダの詳細については、『WebLogic Security について』の「The WebLogic Security Providers」を参照してください。
WebLogic Server では、表 6-1 に示すセキュリティ ポリシーがデフォルトで定義されています。これらのセキュリティ ポリシーは「WebLogic リソースのタイプ」で説明する WebLogic リソースのタイプごとに定義されており、デフォルト グローバル ロールとデフォルト グループに基づいています。
注意 : デフォルト セキュリティ ポリシーには Administration Console でアクセスできます。Administration Console オンライン ヘルプの「ルート レベルのポリシーへのアクセス」を参照してください。
警告 : 管理リソースとサーバ リソースのデフォルト セキュリティ ポリシーを変更して、それらの制約をさらに厳しくしないでください。既存のセキュリティ ロールの一部を削除すると、WebLogic Server の動作に悪影響を与えることがあります。ただし、必要に応じて、デフォルト セキュリティ ポリシーにより多くを含めることはできます (たとえば、新しいセキュリティ ロールを追加するなど)。
WebLogic Server Administration Console、WebLogic Scripting Tool (WLST)、および MBean API は、デフォルト セキュリティ ポリシーによって保護されます。デフォルト セキュリティ ポリシーは、表 5-2 で説明したデフォルト グローバル ロールおよびデフォルト グループに基づきます。したがって、Administration Console を使用するためには、ユーザはデフォルト グループのいずれかに属しているか、グローバル ロールが付与されていなければなりません。また、MBean との対話を必要とする管理操作は、「MBean の保護」で説明されている MBean の保護を使用して保護されます。したがって、以下の保護されているパブリック インタフェースとの対話では、通常、両方のセキュリティ方式を満たしている必要があります。
このパブリック インタフェースの使用方法については、Administration Console オンライン ヘルプを参照してください。
weblogic.management.NoAccessRuntimeException
が送出されます。この例外は、開発者がプログラムで明示的に捕捉できます。この例外はサーバによってそのログ ファイルに送信されますが、標準出力に例外を送信するよう、サーバをコンフィグレーションすることもできます。 このパブリック インタフェースの使用方法については、『WebLogic Scripting Tool ガイド』を参照してください。
注意 : WLST は、MBean API (後述) との対話を抽象化する便利なユーティリティです。したがって、WLST を使用して実行できる管理タスクは、MBean API を使用して実行することもできます。
weblogic.management.NoAccessRuntimeException
が送出されます。この例外は、開発者がプログラムで明示的に捕捉できます。この例外はサーバによってそのログ ファイルに送信されますが、標準出力に例外を送信するよう、サーバをコンフィグレーションすることもできます。 こうした API の使用方法については、「保護された MBean の属性と操作」および『JMX によるカスタム管理ユーティリティの開発』の「Managing Security Realms with JMX」を参照してください。
ポリシー条件とは、セキュリティ ポリシーを作成する際の条件です。WebLogic には、3 種類の組み込みポリシー条件が用意されています。こうした条件をあらゆる論理的な組み合わせで使用できます。
このリリースの WebLogic Server で使用できる基本的なポリシー条件は以下のとおりです。
[ロール]
- セキュリティ ロールに基づいてセキュリティ ポリシー条件を作成します。たとえば、BankTeller
セキュリティ ロールのユーザまたはグループだけが Deposit
EJB にアクセスできるという条件を作成できます。[ユーザ]
- ユーザ名に基づいてセキュリティ ポリシー条件を作成します。たとえば、ユーザ John
だけが Deposit
EJB にアクセスできるという条件を作成できます。[グループ]
- グループに基づいてセキュリティ ポリシー条件を作成します。グループを使用してセキュリティ ポリシーを作成すると、セキュリティ ポリシーはそのグループのすべてのメンバーに割り当てられます。たとえば、グループ FullTimeBankEmployees
に属するユーザのみが Deposit
EJB にアクセスできるという条件を作成できます。[Server is in Development Mode]
- サーバが開発モードで実行されているかどうかに基づいてセキュリティ ポリシー条件を作成します。[Allow access to everyone]
- すべてのユーザおよびグループを含むセキュリティ ポリシー条件を作成します。[Deny access to everyone]
- ユーザおよびグループのどれも含まないセキュリティ ポリシー条件を作成します。 [Element requires signature by]
- Web サービス操作を呼び出す SOAP リクエスト メッセージ内の要素を誰がデジタル署名したかに基づいてセキュリティ ポリシー条件を作成します。たとえば、getBalance
操作を、受信 SOAP リクエストの AccountNumber
要素が BankTeller
セキュリティ ロールによってデジタル署名された場合にのみ呼び出すことができるという条件を作成できます。 任意の日付と時刻の条件を使用する場合、他のいずれかのロール条件を追加してさらにユーザを制限しない限り、セキュリティ ポリシーではすべてのユーザに対して指定した日付または時刻のアクセスを許可します。このリリースの WebLogic Server で使用できる日付と時間のポリシー条件は以下のとおりです。
[Access occurs between specified hours]
- 指定した時間に基づいてセキュリティ ポリシー条件を作成します。たとえば、ユーザに営業時間中のアクセスのみを許可する条件を作成できます。 [Access occurs after]
- 指定した時刻より後の時間に基づくセキュリティ ポリシー条件を作成します。たとえば、ユーザに営業開始後などの特定の日付および時刻より後のアクセスを許可する条件を作成できます。[Access occurs before]
- 指定した時刻より前の時間に基づくセキュリティ ポリシー条件を作成します。たとえば、ユーザに営業終了前などの特定の日付および時刻より前のアクセスを許可する条件を作成できます。[Access occurs on specified days of the week]
- 特定の曜日に基づくセキュリティ ポリシー条件を作成します。たとえば、ユーザに平日のアクセスを許可する条件を作成できます。[Access occurs on the specified day of the month]
- 月の日付 (序数) に基づくセキュリティ ポリシー条件を作成します。たとえば、ユーザに毎月の 1 日にのみアクセスを許可する条件を作成できます。 [Access occurs after the specified day of the month]
- 月の日付 (序数) より後の時間に基づくセキュリティ ポリシー条件を作成します。たとえば、ユーザに毎月 15 日より後にアクセスを許可する条件を作成できます。[Access occurs before the specified day of the month]
- 月の日付 (序数) より前の時間に基づくセキュリティ ポリシー条件を作成します。たとえば、ユーザに毎月 15 日になる前までアクセスを許可する条件を作成できます。コンテキスト要素の条件を使用すると、HTTP サーブレット リクエスト属性、HTTP セッション属性、EJB メソッドのパラメータの値に基づいてセキュリティ ポリシーを作成できます。この情報は WebLogic Server によって ContextHandler オブジェクトから取得され、その値に基づいてポリシー条件を定義できます。こうした条件を使用する場合、使用しているコンテキストに属性またはパラメータと値のペアが確実に適用するようにするのはユーザの役目です。詳細については、『WebLogic セキュリティ プロバイダの開発』の「ContextHandlers and WebLogic Resources 」を参照してください。
このリリースの WebLogic Server で使用できるコンテキスト要素のポリシー条件は以下のとおりです。
[Context element defined]
- 指定した属性またはパラメータの存在に基づくセキュリティ ポリシー条件を作成します。[Context element's value equals a numeric constant]
- 指定した属性やパラメータの数値 (または double 型の数値を表す文字列) で、指定した double
型の数値と等しいものに基づく、セキュリティ ポリシー条件を作成します。[Context element's value is greater than a numeric constant]
- 指定した属性やパラメータの数値 (または double 型の数値を表す文字列) で、指定した double
型の数値より大きいものに基づく、セキュリティ ポリシー条件を作成します。[Context element's value is less than a numeric constant]
- 指定した属性やパラメータの数値 (または double 型の数値を表す文字列) で、指定した double
型の数値より小さいものに基づく、セキュリティ ポリシー条件を作成します。[Context element's value equals a string constant]
- 指定した属性やパラメータの文字列値で、指定した文字列と等しいものに基づく、セキュリティ ポリシー条件を作成します。ポリシー条件に対して特定の情報 (実際のロール名、開始/終了時間など) を組み合わせたものは式と呼ばれます。ポリシーを定義する 1 つまたは複数の式は集合的にポリシー文と呼ばれています (次節を参照)。ポリシー式を使用すると、たとえば BankTeller
セキュリティ ロールに属するユーザのみが、通常の銀行の営業時間に、ビジネス Web アプリケーションにアクセスできるようになります。
ポリシー文は、セキュリティ ポリシーがどのように与えられるかを定義した式の集合体です。複数の式を使用できるため、企業のセキュリティ要件に合わせて複雑なセキュリティ ポリシーを作成できます。式の間には and
演算子や or
演算子も使用でき、式の順序を変更したり式を否定したりすることもできます。詳細については、Administration Console オンライン ヘルプの「セキュリティ ポリシーの作成」を参照してください。
ユーザ、グループ、またはセキュリティ ロールに、セキュリティ ポリシーが付与されるには、ロール文全体が true である必要があります。ポリシー文の中では、制約が厳しい式ほど後に指定します。
WebLogic Administration Console を使用して、セキュリティ ポリシーの作成や変更のために WebLogic リソースにアクセスできます。詳細については、Administration Console オンライン ヘルプの「セキュリティ ポリシーの管理」を参照してください。
![]() |
![]() |
![]() |