Oracle RTDのセキュリティには、クラスタ全体のセキュリティ、インライン・サービス(アプリケーション・レベル)のセキュリティ、Decision Centerのパースペクティブ(ビュー)での追加レベルのセキュリティの3つのレベルがあります。また、各データソースには、データベースのユーザー名およびパスワードに基づく追加のセキュリティ・レベルがあります。
Oracle RTDの各セキュリティ・レベルの設定は、次のようにまとめられます。
クラスタ全体のセキュリティは、SecurityManager MBeanを使用して構成します。JConsoleを使用して、Oracle RTDユーザーに権限コードを設定できます。
インライン・サービスのセキュリティは、個々のインライン・サービスに対して構成します。
パースペクティブレベルのセキュリティは、Decision Studioで構成します。
次の各項では、各セキュリティ・レベルの設定および使用方法について詳しく説明します。
重要なのは、3つのセキュリティ・レベルをすべて構成するということです。そうしないと、問題が発生する可能性があります。たとえば、あるユーザーがDecision Studioでデプロイするためのクラスタ全体の権限を持っていても、インライン・サービスおよびパースペクティブのレベルでデプロイするための正しい権限がない場合は、そのユーザーはインライン・サービスでの表示および編集ができません。
この章の内容は次のとおりです。
Oracle RTDで使用する権限には、次の3種類があります。
クラスタ権限
インライン・サービス権限
Decision Centerのパースペクティブ権限
この項の内容は次のとおりです。
クラスタ権限は、Oracle RTDクラスタのすべてのOracle RTDインスタンスに適用されるグローバルな権限です。
Oracle RTDのクラスタ権限は、JMX MBeanを通じて個々のJEEサーブレット・ロールに付与されます。このJMX MBeanのJConsoleパスは「OracleRTD」→「SDManagement」→「Security Manager」となっています。
表7-1 クラスタ権限
ターゲット・クラスタ権限 | 説明 | 暗黙の権限、ターゲット権限の付与時に自動付与 |
---|---|---|
管理者 |
Oracle RTDのアクティビティをすべて許可します。これにより、インライン・サービス権限が割り当てられていないインライン・サービスを扱うことができます。 |
サービスを開く 読取り用サービスを開く Studioからサービスをデプロイする サービスをダウンロードする |
サービスを開く |
あるユーザーに、インライン・サービス権限「サービスを開く」も付与されている場合に、そのユーザーがDecision Centerを使用してインライン・サービスを開いて編集することを許可します。 |
読取り用サービスを開く |
読取り用サービスを開く |
あるユーザーに、インライン・サービス権限「読取り用サービスを開く」も付与されている場合に、そのユーザーがDecision Centerを使用してインライン・サービスを開いて表示することを許可します。 |
N/A |
Studioからサービスをデプロイする |
新しいインライン・サービスおよび既存のバージョン(存在する場合)に、インライン・サービス権限「Studioからサービスをデプロイする」が付与されている場合に、あるユーザーがDecision Studioから新しいインライン・サービスをデプロイすること、または既存のインライン・サービスの新しいバージョンをデプロイすることを許可します。 |
サービスを開く 読取り用サービスを開く |
サービスをダウンロードする |
インライン・サービスにインライン・サービス権限「サービスをダウンロードする」が付与されている場合に、あるユーザーがDecision Studioを使用してサーバーからインライン・サービスをダウンロードすることを許可します。 |
読取り用サービスを開く |
インライン・サービス権限は、特定のインライン・サービスに関連付けられます。これらの権限は、Decision Studioの「Application/Permissions」タブで個々のサーブレット・ロールに付与されます。
表7-2 インライン・サービス権限
ターゲット権限 | 説明 | 暗黙の権限、ターゲット権限の付与時に自動付与 |
---|---|---|
サービスを開く |
対応するクラスタ権限が付随する場合に、あるユーザーがDecision Centerを使用してインライン・サービスを開いて編集することを許可します。 |
読取り用サービスを開く |
読取り用サービスを開く |
対応するクラスタ権限が付随する場合に、あるユーザーがDecision Centerを使用してインライン・サービスを開いて表示することを許可します。 |
N/A |
Studioからサービスをデプロイする |
対応するクラスタ権限が付随する場合に、あるユーザーがDecision Studioからインライン・サービスをデプロイすることを許可します。 既存のインライン・サービスを再デプロイする場合は、既存のインライン・サービスにもこの権限が付与されている必要があります。 |
サービスを開く 読取り用サービスを開く |
サービスをダウンロードする |
対応するクラスタ権限が付随する場合に、あるユーザーがDecision Studioを使用してサーバーからインライン・サービスをダウンロードすることを許可します。 |
読取り用サービスを開く |
Decision Centerのパースペクティブ権限がDecision Studioを通じて割り当てられ、Decision Centerのユーザーは、指定されたパースペクティブを使用してインライン・サービスを開くことができます。
表7-3は、Decision Centerのデフォルトのパースペクティブの一覧です。
7-3 Decision Centerのパースペクティブ
パースペクティブ | 説明 |
---|---|
Explore |
インライン・サービスの属性およびパフォーマンス・レポートを表示するのに適したユーザー・インタフェースを表示します。編集用ではありません。 |
Design |
Exploreパースペクティブをすべて含むユーザー・インタフェースを表示します。これを使用すると、インライン・サービスのいくつかの側面を編集することもできます。 |
At a Glance |
Exploreパースペクティブを通じて利用可能な属性およびパフォーマンス・レポートのサブセットを表示するのに適した、簡略化されたユーザー・インタフェースを表示します。 |
この項では、出荷時点のOracle RTDのデプロイメント・ディスクリプタで宣言されているJEEサーブレット・ロールと、それらのロールにOracle RTDによって自動的に割り当てられるOracle RTDの権限について説明します。
これらのロールはOracle RTDでは作成されず、単にOracle RTDのデプロイメント・ディスクリプタで参照されるのみです。実際に作成するには、この章の別の項で説明されているように、通常の場合、アプリケーション・サーバーの管理コンソールを使用して最初にユーザー・グループを作成してから、ユーザー・グループに対するロールを定義します。
この項の内容は次のとおりです。
この項では、Oracle RTDの標準ロールへのクラスタ権限のデフォルトの割当てについて説明します。
これらの割当ての変更にはOracle RTDのセキュリティ・マネージャMBeanを使用できますが、お薦めはしません。
注意: クラスタ権限のこのデフォルトの割当てに戻るMBean操作があります。つまり、「OracleRTD」→「SDManagement」→「Security Manager: revertToStandardPermissions()」です。 |
表7-4 Oracle RTDの標準ロール
ロール | デフォルトのクラスタ権限 | 説明(サンプルのインライン・サービスILS_Xに関して) |
---|---|---|
RTDUsers |
なし |
このロールは、認証されたすべてのユーザーに対応します。Decision Centerの任意のページまたはWebサービスに送られるリクエストは、JEEコンテナによりアクセス権を付与されるこのロールに属している必要があります。 このロールには権限が割り当てられないため、要求された権限を持つ他のなんらかのロールにもユーザーが属していないかぎり、Oracle RTDは要求された権限をチェックするときに以後のリクエストを拒否することになります。 |
RTDAdministrators |
管理者 |
このロールでは、あらゆることが行えます。 |
RTDDecisionCenterEditors |
サービスを開く |
Decision Studioで、インライン・サービスILS_Xの「Application/Permissions」タブによって、このロールに「サービスを開く」権限が付与されている場合、このロールでは、Decision Centerを使用してILS_Xを開いて編集できます。 |
RTDDecisionCenterUsers |
読取り用サービスを開く |
Decision Studioで、インライン・サービスILS_Xの「Application/Permissions」タブによって、このロールに「読取り用サービスを開く」権限が付与されている場合、このロールでは、Decision Centerを使用してILS_Xを開いて読取り専用表示できます。 |
RTDStudioDeployers |
Studioからサービスをデプロイする サービスを開く |
Decision Studioで、インライン・サービスILS_Xの「Application/Permissions」タブによって、「Studioからサービスをデプロイする」権限が付与され、この権限を持たないILS_Xの既存のインスタンスがデプロイされていない場合、このロールでは、Decision Studioを使用してサーバーにILS_Xをデプロイできます。 Decision Studioで、インライン・サービスILS_Xの「Application/Permissions」タブによって、このロールに「サービスを開く」権限が付与されている場合、このロールでは、Decision Centerを使用してILS_Xを開いて編集できます。 |
RTDStudioDownloaders |
サービスをダウンロードする 読取り用サービスを開く |
ILS_Xがデプロイされる前に、Decision Studioで、インライン・サービスILS_Xの「Application/Permissions」タブによって、このロールに「サービスをダウンロードする」権限が付与されている場合、このロールでは、Decision Studioを使用してサーバーからILS_Xをダウンロードできます。 Decision Studioで、インライン・サービスILS_Xの「Application/Permissions」タブによって、このロールに「読取り用サービスを開く」権限が付与されている場合、このロールでは、Decision Centerを使用してILS_Xを開いて読取り専用表示できます。 |
RTDBatchAdministrators |
なし |
このロールは、BatchManager Webサービスの任意のメソッドを実行できます。 このロールに関連付けられているクラスタ権限はありません。 |
RTDChoiceEditors |
なし |
このロールは、ExternalChoice Webサービスの任意のメソッドを実行でき、またDecision Centerでリクエストを処理するURLにアクセスして、外部ルールまたは外部選択肢を編集できます。 このロールに関連付けられているクラスタ権限はありません。 |
デフォルトで、新しいインライン・サービスには、Oracle RTDの標準ロールに割り当てられた数多くのインライン・サービス権限があります。
表7-5は、RTDの標準ロールに割り当てられたデフォルトのインライン・サービス権限を示しています。
新しいインライン・サービスが作成されると、表7-6に示されているように、そのDecision Centerのパースペクティブは、デフォルトで、Oracle RTDの標準ロールからアクセス可能になります。
Oracle RTDの標準ロールで定義されているユーザーのグループよりも多い、または異なるグループに権限を割り当てることが企業にとって必要である場合、企業は、専用のユーザー・グループに対応する新しいセキュリティ・ロールを作成し、Oracle RTDのデプロイメント・ディスクリプタで新しいロールを宣言し、Oracle RTDを再デプロイした後で、前の各項で説明されているように、新しいロールにクラスタ権限またはインライン・サービス権限を付与できます。
ロールの作成およびOracle RTDのデプロイメント・ディスクリプタでのロールの宣言の詳細は、ベンダーに固有のものであり、アプリケーション・サーバーの具体的な章で説明します。
このプロセスの概要として、企業が最初のインライン・サービスとしてILS1をすでに定義しており、ILS1はOracle RTDの標準ロールのユーザーによって管理されると想定しています。さらに、企業には次の付加的な要件があると想定しています。
グループILS2DevelopersGroupおよびILS2UsersGroupのユーザーによって管理される新しいインライン・サービスILS2を導入する
ILS2の開発者は、ILS1の内容の読込みは許可されるが、その変更は許可されない
ILS1の開発者は、たとえ読込みであってもILS2へのアクセス権を持たない
次に、付加的な要件に対する手順の概要を示します。
ベンダーの管理コンソールを使用して、ユーザー・グループILS2DevelopersGroupおよびILS2UsersGroupを作成します。
ベンダーの管理コンソールを使用して、該当するユーザーをこの2つのグループに入れます。
ベンダーの管理コンソールを使用して、2つのJEEサーブレット・セキュリティ・ロールILS2DevelopersおよびILS2Usersを作成します。したがって、新しいグループに関して、次のようになります。
ILS2DevelopersGroupのユーザーは、いずれもILS2Developersロールに所属する
ILS2UsersGroupのユーザーは、いずれもILS2Usersロールに所属する
次の2つのweb.xml
ファイル内のOracle RTDのデプロイメント・ディスクリプタを更新して、新しいセキュリティ・ロールへの参照を宣言します。
RTD.ear
> ui.war
> web-inf/web.xml
RTD.ear
> soap.war
> web-inf/web.xml
web.xml
パスに対するここでの表記法は、両方のweb.xml
ファイルがweb-inf
という名前のディレクトリにあること、またweb-inf
がui.war
およびsoap.war
という名前のWebアーカイブ内にあることを示しています。同様に、WebアーカイブはRTD.ear
という名前のエンタープライズ・アーカイブ内にあります。
インストールはアプリケーション・サーバーによって異なりますが、このインストールに応じて、ear
ファイルおよびwar
ファイルは、アーカイブ・ファイルであるか、またはファイル・システム内に展開されています。
Oracle RTDを再デプロイします。
次の手順に従って、JConsoleを使用して新しいロールにクラスタ権限を割り当てます。
StudioからロールILS2Developersにサービスをデプロイします。
この権限は、インライン・サービスのデプロイを許可するために必要ですが、対応するインライン・サービス権限がないと不十分です。
ロールILS2Usersにサービスを開きます。
この権限は、Decision Centerでユーザーがインライン・サービスを開くのを許可するために必要ですが、対応するインライン・サービス権限がないと不十分です。
Decision Studioを使用して、表7-7に示されているように、ILS1およびILS2を開き、これらのインライン・サービス権限およびDecision Centerのパースペクティブ権限を割り当てます。
Decision Studioを使用して、2つのインライン・サービスILS1およびILS2を再デプロイします。
第7.2項「Oracle RTDの標準ロール」とそれを構成する下位の項では、デフォルトの権限がOracle RTDの標準ロールにすでにどのように割り当てられているかについて説明します。この項では、デフォルトの権限がない場合に、カスタム・ロールに必要な権限など、他の権限を割り当てる方法について説明します。
この項の内容は次のとおりです。
クラスタ権限は、JMXを通じて付与されます。このときに使用するMBeanのパスは、「OracleRTD」→「SDManagement」→「Security Manager」です。詳細は、第15.5項「Oracle Real-Time Decisionsのセキュリティの管理」を参照してください。
listPermissionCodes操作を実行すると、権限を割り当てるときに入力できる権限コードのリストが得られます。
次に例を示します。
0: 管理者
1: サービスを開く
2: 読取り用サービスを開く
3: Studioからサービスをデプロイする
4: サービスをダウンロードする
インライン・サービス権限をDecision Studioで付与するには、Applicationオブジェクトの「Permissions」タブを使用します。詳細は、『Oracle Real-Time Decisionsプラットフォーム開発者ガイド』の「インライン・サービス権限の設定」を参照してください。
たとえば、CrossSellインライン・サービスでは、RTDStudioDeployersロールには「Studioからサービスをデプロイする」権限が付与されています。「サービスを開く」権限および「読取り用サービスを開く」権限にも、付与済というマークが付けられます。これらの権限は「Studioからサービスをデプロイする」で暗黙のうちに示されているためです。Decision Studioでは、権限を割り当てるときに、クラスタ権限がすでに割り当てられているロールのドロップダウン・リストからロールの名前を選択できます。対象のロールにクラスタ権限がまだ割り当てられていない場合は、Decision Studioに手動で名前を入力することもできますが、対応するクラスタ権限が付与されるまで、その権限に値は設定されません。
Decision Studioでインライン・サービスの特定のパースペクティブを有効にするには、Decision CenterのPerspectivesフォルダで目的のパースペクティブを選択して右クリックし、その「Properties」を選択します。そのパースペクティブを使用することが許可されているロールの一覧にそのロールを追加して、指定したロールにパースペクティブへのアクセス権を付与します。詳細は、『Oracle Real-Time Decisionsプラットフォーム開発者ガイド』の「Decision Centerのパースペクティブについて」を参照してください。
Oracle RTDでは、特定のユーザーにOracle RTDのどのロールが割り当てられているかを理解しやすくするためのリソースが、Decision Centerの一部としてインストールされています。この機能が有効になっている場合、HTTPブラウザからhttp://
host
:
port
/ui/hello.jsp
にアクセスすると、Oracle RTDのログイン・ページが表示されます。ユーザーがまだログインしていない場合には、次の例のように、シンプルなページが現れ、ユーザーのロールが表示されます。
Hello, phil
You are in these RTD Roles: [RTDAdministrators, RTDUsers]
ここに一覧表示されているロールは、Oracle RTDのセキュリティ・マネージャMBeanでクラスタ権限が割り当てられているロールすべてのサブセットです。Oracle RTDの使用可能なロールの詳細な一覧は、セキュリティ・マネージャMBeanの操作listEveryoneHavingPermissionsによってレンダリングされるセットです。
注意: ユーザーのロールを表示したときにプライバシーの問題が発生しないようにするため、アプリケーション・サーバーに固有の方法で、JVMに次のシステム・プロパティを設定してこの機能を明示的に有効にしていないかぎり、hello.jsp にはロールが表示されません。
|
この項では、以前のリリースから3.0にアップグレードする場合にOracle RTDの既存の顧客に要求されるタスクを示しています。この項の内容は次のとおりです。
Oracle RTDの内部アイデンティティ・ストアで定義されたユーザーおよびグループは、一般的に、JEEサーバーのアイデンティティ・ストアに移動される必要があります。JEEサーバーが、企業全体のアイデンティティ・ストアに統合されると、このストアには通常、Oracle RTDの内部アイデンティティ・ストアに別に入力済のユーザーがすでに含まれています。
このプロセスは、ベンダーの管理コンソールを使用するもので、アプリケーション・サーバーの種類によって異なります。例は、対応するアプリケーション・サーバー固有の章に示されています。
既存のインストールで、Oracle RTDの標準ロールより緻密なユーザーまたはグループに権限が割り当てられている場合、権限を割り当てられるように追加のエンタープライズ・ロールを定義する必要があります。
たとえば、ILS2-AdminGroupおよびILS2-UserGroupという名前のユーザー・グループがある場合には、次の手順に従って、2つの新しいロールを定義し、クラスタ権限を割り当てる必要があります。
ILS2Developers: ILS2-AdminGroupのユーザーに該当
ILS2Users: ILS2-UserGroupのユーザーに該当
前の項で定義されたカスタム・ロールについて、次のように、Oracle RTDのデプロイメント・ディスクリプタで各カスタム・ロールへの参照を宣言してからOracle RTDを再デプロイします。
RTD.ear
> ui.war
> web-inf/web.xml
RTD.ear
> soap.war
> web-inf/web.xml
Decision Studioを使用して、Oracle RTDによって内部的にすでに管理されているユーザー・グループを参照するのではなく、アプリケーション・サーバーによって管理されているJEEサーブレット・ロールを参照するように、既存のインライン・サービス権限の割当てを変更します。
Decision Studioを使用して、Oracle RTDによって内部的にすでに管理されているユーザー・グループを参照するのではなく、アプリケーション・サーバーによって管理されているJEEサーブレット・ロールを参照するように、Decision Centerの既存のパースペクティブ権限の割当てを変更します。