Oracle® Fusion Middleware Oracle WebLogic Serverロールおよびポリシーによるリソースの保護 12c リリース1 (12.1.1) B65912-02 |
|
前 |
次 |
この章では、WebLogic Serverのセキュリティ・レルム内のユーザー、グループ、およびセキュリティ・ロールの特長と機能について説明します。
この章の内容は以下のとおりです。
ユーザーは認証可能なエンティティです。ユーザーは、個人でもJavaクライアントなどのソフトウェア・エンティティでもかまいません。各ユーザーには、セキュリティ・レルム内でユニークなIDが与えられます。セキュリティ管理を効率化するには、ユーザーをグループに追加することをお薦めします。グループは、通常、企業の同じ部門に所属しているなどの共通点を持つユーザーの集合です。
表6-1に、WebLogic Serverで設定されたセキュリティ・レルムに定義されている、グループの一覧を示します。デフォルトでは、これらのグループの1つにユーザーを追加すると、デフォルト・グローバル・セキュリティ・ロールの1つにもユーザーが設定されます(「デフォルト・グローバル・ロール」を参照)。
表6-1 デフォルト・グループ
グループ名 | メンバーシップ |
---|---|
Administrators |
デフォルトでは、グループにはインストール・プロセスの一部(つまり、構成ウィザード)で入力されたユーザー情報、および 「ベスト・プラクティス: Administratorsグループにユーザーの追加」を参照してください。 |
Deployers |
デフォルトでは、このグループは空。 |
Operators |
デフォルトでは、このグループは空。 |
Monitors |
デフォルトでは、このグループは空。 |
AppTesters |
デフォルトでは、このグループは空。 |
CrossDomainConnectors |
デフォルトでは、このグループは空。 |
AdminChannelUsers |
デフォルトでは、このグループは空。 |
|
デフォルトでは、このグループには |
実行時には、すべてのユーザーが以下のグループに入ることになります。
Users
。このグループには、認証されたすべてのユーザーが含まれます。
Everyone
。このグループにはすべての匿名ユーザーと、(users
グループも匿名ユーザーであることから)認証されたすべてのユーザーが含まれます。
表6-1のグループ(または独自に作成した他のグループ)と違い、これらのグループに対して直接ユーザーの追加または削除を行うことはできません。これらのグループは管理コンソールの「グループ」タブには表示されず、認証データベースでもエクスポートされません。
セキュリティ・ロールは、特定の条件に基いてユーザーまたはグループに付与されるIDです。複数のユーザーまたはグループに同じセキュリティ・ロールを付与することができます。また、ユーザーまたはグループは複数のセキュリティ・ロール内に存在できます。セキュリティ・ロールは、ポリシーにおいてWebLogicリソースにアクセスできるユーザーを決定するために使用されます。(第5章「セキュリティ・ポリシー」を参照してください)。
ロールでは、セキュリティ・グループと同様にユーザーにIDが付与されます。ただし、セキュリティ・ロールは以下の点でグループとは異なります。
セキュリティ・ロールは、WebLogic Serverドメインの1つのアプリケーション内にある特定のWebLogicリソースをスコープとして指定できます。一方、グループは常にWebLogic Serverドメイン全体をスコープとします。「セキュリティ・ロールのタイプ:グローバル・ロールとスコープ指定ロール」を参照してください。
セキュリティ・ロールは、ユーザー名、グループ・メンバーシップ、または時刻などの条件に基づいて動的に計算されてユーザーまたはグループに付与されます。一方、グループは静的です。
ロールを計算して付与するプロセスをロール・マッピングといいます。ロール・マッピングは、WebLogicセキュリティ・サービスが保護対象のWebLogicリソースに対するアクセス決定を下す直前に行われます。アクセス決定は、認可プロバイダのコンポーネントであり、WebLogicリソースに対して特定の操作を実行するパーミッションがサブジェクトにあるかどうかを判断します。(『Oracle WebLogic Serverセキュリティ・プロバイダの開発』のアクセス決定に関する項を参照してください。)
WebLogic Serverには2種類のセキュリティ・ロールがあります。
グローバルセキュリティ・ロール。すべてのセキュリティ・ポリシーで使用できるロールです。WebLogicリソースを保護するためにそのまま使用できる複数のデフォルト・グローバル・ロールが用意されています(「デフォルト・グローバル・ロール」を参照)。
注意: JSR 115に定義されているようにJACC (Java authorization Contract for Containers)を使用してセキュリティを実装している場合、セキュリティ・ロールは使用できません。 |
スコープ指定ロール。WebLogicリソースの特定のインスタンス(EJBのメソッド、JNDIツリーのブランチなど)用に定義されたポリシーにのみ使用できるロールです。スコープ指定ロールはまず使用する必要はありません。スコープ・ロールは柔軟性を高めるためのもので、高度なユーザー向けの特別な機能です。
表6-2に、WebLogic Serverで設定されたセキュリティ・レルムに定義されている、グローバル・ロールの一覧を示します。この表ではさらに、デフォルト・セキュリティ・ポリシーによって各ロールに付与されるアクセスと、各ロールにデフォルトでどのグループが含まれるかについてもまとめます。
警告: これらのロールは削除しないでください。これらは、ほとんどの種類のWebLogicリソースを保護するデフォルト・セキュリティ・ポリシーで使用されます。また、MBeanセキュリティ・レイヤーでも使用されます。Adminロールを削除すると、実行中のドメインの構成をどのユーザーも変更できなくなります。「一貫性のあるセキュリティ方式の維持」を参照してください。 |
表6-2 デフォルト・グローバル・ロール、特権、および割り当てられるデフォルト・グループ
グローバル・ロール | デフォルト・ポリシーで付与されるアクセス | デフォルトの条件に含まれるグループ |
---|---|---|
Admin |
|
Administrators |
AdminChannelUser |
管理チャネル |
|
Anonymous |
すべてのユーザー( 注意:このグローバル・ロールは利便性のために用意されており、weblogic.xmlおよびweblogic-ejb-jar.xmlデプロイメント記述子で指定できます。『Oracle WebLogic Server Webアプリケーション、サーブレット、JSPの開発』のweblogic.xmlデプロイメント記述子の要素に関する項、および『Oracle WebLogic Server Enterprise JavaBeansのプログラミング』のweblogic-ejb-jar.xmlデプロイメント記述子のリファレンスを参照してください。 |
everyone |
Deployer |
|
Deployers |
Operator |
|
Operators |
Monitor |
サーバー構成(暗号化された属性は除く)を表示します。 このセキュリティ・ロールでは、WebLogic Server管理コンソール、WLST、およびMBean APIへの読取り専用アクセスが効果的に提供されます。 |
Monitors |
AppTester |
管理モードで動作しているアプリケーションにテスト目的でアクセスします。詳細は、『Oracle WebLogic Serverへのアプリケーションのデプロイ』のプロダクション・アプリケーションを分離するための管理モードに関する項を参照してください。 |
AppTesters |
CrossDomainConnector |
外部ドメインからドメイン間呼出しを実行します。詳細は、『Oracle WebLogic Serverの保護』のWebLogic Serverドメイン間の信頼関係の有効化に関する項を参照してください。 |
CrossDomainConnectors |
|
WS-Securityトークンが認証されたユーザーのかわりのIDアサーション。 注意: このグローバル・ロールはOracle Web Services Managerで使用するために提供されています。 |
OracleSystemGroup |
ロールには、実行時にセキュリティ・ロールに含まれるユーザーを決定するために1つまたは複数の条件が指定されます。たとえば、基本的なロールには「Administrator」グループのみが指定されます。このロールは、WebLogicセキュリティ・サービスによって実行時に「Administratorグループをこのロールに含める」と解釈されます。さらに複雑な条件を作成することも可能で、そうした条件を論理演算子ANDやOR (非排他的なOR)で組み合せることもできます。また、どの条件も否定が可能で、それによってロールからユーザーを除外できます。ユーザーやグループにセキュリティ・ロールが与えられるには、すべての条件がtrueである必要があります。ロール文の中では、制約が厳しい式ほど後に指定します。
管理コンソールには、WebLogic Serverロール・マッピング・プロバイダに組み込まれている以下の3種類のロール条件が表示されます。
注意: 以下の節では、WebLogicロール・マッピング・プロバイダまたはWebLogic XACMLロール・マッピング・プロバイダを使用するレルムで利用できる条件について説明します。お使いのセキュリティ・レルムでサード・パーティ製のロール・マッピング・プロバイダを使用する場合は、サード・パーティのドキュメントでこの機能について参照してください。 |
このリリースのWebLogic Serverで使用できる基本的なロール条件は以下のとおりです。
ユーザー
- 指定したユーザーをロールに追加します。たとえば、ユーザーJohn
だけがBankTeller
セキュリティ・ロールを付与されるといった条件を作成できます。
グループ
- 指定したグループをロールに追加します。たとえば、グループFullTimeBankEmployees
に属するユーザーだけがBankTeller
セキュリティ・ロールを付与されるといった条件を作成できます。
セキュリティ管理がより効率的になるため、最低限の要件としてこのロール条件をお薦めします。
サーバーが開発モードである
- サーバーが開発モードで動作している場合にのみプリンシパルをロールに追加します。『構成ウィザードによるドメインの作成』のWebLogicドメインの作成に関する項を参照してください。
全員に対してアクセスを許可
- すべてのユーザーおよびグループをロールに追加します。
全員に対してアクセスを拒否
- どのユーザーやグループもロールに含まれないようにします。
任意の日付と時刻のロール条件を使用する場合、他のいずれかのロール条件を追加してさらにユーザーを制限しない限り、セキュリティ・ロールでは指定した日付または時刻のアクセスをすべてのユーザーに対して許可します。このリリースのWebLogic Serverで使用できる日付と時刻のロール条件は以下のとおりです。
指定した時間帯にアクセスが発生
- 指定した時間帯にのみロールにプリンシパルを追加します。たとえば、銀行の営業時間中にのみBankTeller
セキュリティ・ロールをユーザーに付与するといった条件を作成できます。
次の日時より後にアクセスが発生
- 現在時刻が指定した時刻より後の場合にのみ、ロールにプリンシパルを追加します。たとえば、銀行の営業開始時間より後など特定の日付や時刻の後にのみBankTeller
セキュリティ・ロールをユーザーに付与するといった条件を作成できます。
次の日時より前にアクセスが発生
- 現在時刻が指定した時刻より前の場合にのみ、ロールにプリンシパルを追加します。たとえば、銀行の営業終了時間より前など特定の日付や時刻の前にのみBankTeller
セキュリティ・ロールをユーザーに付与するといった条件を作成できます。
指定した曜日にアクセスが発生
- 指定した曜日にのみロールにプリンシパルを追加します。たとえば、平日にのみBankTeller
セキュリティ・ロールをユーザーに付与するといった条件を作成できます。
指定した日にアクセスが発生
- 月の特定の日付にロールにプリンシパルを追加します。たとえば、毎月1日にのみBankTeller
セキュリティ・ロールをユーザーに付与するといった条件を作成できます。
指定した日より後にアクセスが発生
- 月の特定の日付より後の時間であることを基準としたセキュリティ・ロール条件を作成します。たとえば、毎月15日より後にBankTeller
セキュリティ・ロールをユーザーに付与するといった条件を作成できます。
指定した日より前にアクセスが発生
- 月の特定の日付より現在の日付が前の場合にのみ、ロールにプリンシパルを追加します。たとえば、毎月15日より前にBankTeller
セキュリティ・ロールをユーザーに付与するといった条件を作成できます。
コンテキスト要素の条件を使用すると、HTTPサーブレット・リクエスト属性、HTTPセッション属性、EJBメソッドのパラメータの値に基づいてセキュリティ・ロールを作成できます。この情報はWebLogic ServerによってContextHandlerオブジェクトから取得され、その値に基づいてロール条件を定義できます。こうした条件を使用する場合、使用しているコンテキストに属性またはパラメータと値のペアが確実に適用するようにするのはユーザーの役目です。詳細は、『Oracle WebLogic Serverセキュリティ・プロバイダの開発』のContextHandlerとWebLogicリソースに関する項を参照してください。
このリリースのWebLogic Serverで使用できるコンテキスト要素のロール条件は以下のとおりです。
コンテキスト要素が定義されている
- 指定した属性またはパラメータに基づいてロールにプリンシパルを追加します。
コンテキスト要素の値が数値定数と等しい
- 指定した属性またはパラメータの数値(またはdouble型の数値を表す文字列)が、指定したdouble
型の数値と等しいことに基づいて、ロールにプリンシパルを追加します。
コンテキスト要素の値が数値定数より大きい
- 指定した属性またはパラメータの数値(またはdouble型の数値を表す文字列)が、指定したdouble
型の数値よりも大きいことに基づいて、ロールにプリンシパルを追加します。
コンテキスト要素の値が数値定数より小さい
- 指定した属性またはパラメータの数値(またはdouble型の数値を表す文字列)が、指定したdouble
型の数値よりも小さいことに基づいて、ロールにプリンシパルを追加します。
コンテキスト要素の値が文字列定数と等しい
- 指定した属性またはパラメータの文字列値が指定した文字列と等しいことに基づいて、ロールにプリンシパルを追加します。
注意: この節では、WebLogic認証プロバイダおよびWebLogicロール・マッピング・プロバイダまたはWebLogic XACMLロール・マッピング・プロバイダを使用するレルムで利用できる機能について説明します。お使いのセキュリティ・レルムでサード・パーティ製の認証またはロール・マッピング・プロバイダを使用する場合は、サード・パーティのドキュメントでその機能について参照してください。 |
セキュリティ・レルムにユーザーやグループを追加する方法については、Oracle WebLogic Server管理コンソール・オンライン・ヘルプのユーザーとグループの管理に関する項を参照してください。
セキュリティ・ロールの作成については、Oracle WebLogic Server管理コンソール・オンライン・ヘルプのセキュリティ・ロールの管理に関する項を参照してください。