データアクセスプロファイルの設定
モデルのすべてのセキュアディメンションに対してデータアクセスプロファイルを定義する必要があります。
セキュアディメンションに対してプロファイルが定義されていない場合、プロファイルに割り当てられているユーザには、そのモデルへのアクセス権がありません。たとえば 2 つのセキュアディメンションのうち 1 つにアクセスを定義するなど、アクセスを部分的に定義した場合も、ユーザはモデルへのアクセスを拒否されます。
データアクセスプロファイルの登録後、必要に応じて、そのデータアクセスプロファイルをユーザに割り当てます。
データアクセスセキュリティに関する一般ルール
データアクセスセキュリティは、以下のルールに基づいています。
デフォルトでは、システム管理者以外はメンバーにアクセスすることができません。メンバーアクセスは明示的に付与される必要があります。
ユーザには、データアクセスを個別に、および、チームメンバーシップを通して、割り当てることができます。
データアクセス権限は、階層の上から下に、親から子へと引き継がれます。
競合がある場合、制限が最も少ないデータアクセスプロファイルが適用されます。
個人データアクセスとチームデータアクセス間に競合がある場合、制限が最も少ない設定が適用されます。
データアクセスプロファイルの登録
管理ページに移動し、セキュリティセクションでデータアクセスプロファイルを選択します。
表示される画面で、新規を選択します。
新規データアクセスプロファイルの ID および説明を入力します。
一覧から必要なモデルを選択します。
権限関連のディメンションごとに、必要なメンバーを選択し、アクセス権を設定します。
ユーザタブまたはチームタブに移動して、現在の環境に割り当てられているユーザまたは対応するユーザが割り当てられているチームに、新規のデータアクセスプロファイルを割り当てます。
子を持つメンバーへのアクセスの定義
1 つまたは複数の階層が定義されているセキュアディメンションへのアクセスを定義する場合、セキュリティはメンバーとそのすべての子に適用されます。たとえば、10 件の子を持つメンバーへのアクセス権を付与する場合、親メンバーへのアクセス権を付与したユーザは、その 10 件の子にもアクセスすることができます。
'読込専用' アクセスまたは '書込' アクセスを付与されている親の子メンバーのアクセスを制限することができます。そのためには、個別のデータアクセスプロファイルを登録して、当該の子に '拒否' アクセスを割り当てます。別の方法として、親と同じデータアクセスプロファイルを使用した上で、当該の子に対して新規の明細を登録することもできます。
データアクセスプロファイル競合の解決
メンバーアクセスは個別ユーザ別およびチーム別に定義することができるため、競合が発生する場合があります。以下のセクションでは、発生する可能性のあるメンバーアクセス競合のシナリオと、競合を解決するために適用されるルールについて説明します。これらのシナリオは、セキュアディメンションであるエンティティディメンションに、以下の階層構造があるという仮定に基づいています。
階層 |
メンバー |
|||
H1 |
WorldWide1 |
Sales |
SalesAsia |
SalesKorea SalesJapan ESalesAsia |
SalesEurope |
SalesItaly SalesFrance ESalesEurope |
|||
H2 |
WorldWide2 |
Asia |
Korea |
SalesKorea |
Japan |
SalesJapan |
|||
eAsia |
ESalesAsia |
|||
Europe |
Italy |
SalesItaly |
||
France |
SalesFrance |
|||
eEurope |
ESalesEurope |
|||
プロファイル間の競合
データアクセスプロファイル間に競合がある場合、制限が最も少ないプロファイルが常に適用されます。このセクションでは、プロファイル間に競合がある、3 種類のシナリオについて説明します。
シナリオ 1:
User1 は、Team1 と Team2 に属しています。
ProfileA と ProfileB という 2 つのデータアクセスプロファイルがあります。
ProfileA は Team1 に割り当てられ、ProfileB は Team2 に割り当てられています。
以下の表は、これらのデータアクセスプロファイルについて説明しています。
データアクセスプロファイル |
アクセス |
ディメンション |
メンバー |
ProfileA |
書込 |
エンティティ |
Sales |
ProfileB |
読込専用 |
エンティティ |
SalesAsia |
この場合、2 つのプロファイルのうち、制限の少ない ProfileA (書込) が適用されます。その結果、ProfileB はシステムで無視され、User1 は SalesKorea と SalesItaly の両方にデータを送信できます。
シナリオ 2:
User1 は、Team1 と Team2 に属しています。
2 つのデータアクセスプロファイルProfileA と ProfileB があります。
ProfileA は Team1 に割り当てられ、ProfileB は Team2 に割り当てられています。
以下の表は、これらのデータアクセスプロファイルについて説明しています。
データアクセスプロファイル |
アクセス |
ディメンション |
メンバー |
ProfileA |
読込専用 |
エンティティ |
Sales |
ProfileB |
書込 |
エンティティ |
SalesAsia |
この場合、2 つのプロファイルのうち、制限が少ない ProfileB (書込) が SalesAsia の子メンバーに適用されます。その結果、ProfileA はシステムで無視され、User1 は SalesKorea にデータを送信できますが、SalesItaly には送信できません。
シナリオ 3:
User1 はどのチームにも属していません。
ProfileA と ProfileB という 2 つのデータアクセスプロファイルがあります。
両方のプロファイルがユーザに割り当てられています。
以下の表は、これらのデータアクセスプロファイルについて説明しています。
データアクセスプロファイル |
アクセス |
ディメンション |
メンバー |
ProfileA |
拒否 |
エンティティ |
SalesAsia |
ProfileB |
読込専用 |
エンティティ |
Sales |
この場合、2 つのプロファイルのうち、制限が少ない ProfileB (読込専用) が適用されます。その結果、ProfileA はシステムで無視され、User1 は SalesKorea と SalesItaly の両方からデータを取得できるようになります。
親メンバーと子メンバー間の競合
権限は常に階層の上から下に、親から子へと引き継がれます。特に指定がない限り、子メンバーには常に、親の持つアクセスレベルが適用されます。
シナリオ 1:
User1 は Team1 に属していて、Team1 には ProfileA が割り当てられています。
2 つのレベルのデータアクセスプロファイルが ProfileA に対して定義されています。
以下の表は、ProfileA のデータアクセスプロファイルについて説明しています。
データアクセスプロファイル |
アクセス |
ディメンション |
メンバー |
ProfileA |
書込 |
エンティティ |
Sales |
ProfileA |
読込専用 |
エンティティ |
SalesAsia |
この場合、Sales メンバーの書込アクセスは、子に引き継がれます。このアクセスの継承は、読込専用アクセスを SalesAsia (Sales の子孫) に割り当てることで中断され、SalesAsia の子孫には SalesAsia のアクセスが引き継がれるようになります。その結果、User1 は SalesItaly にデータを送信できますが、SalesKorea には送信できません。
シナリオ 2:
User1 は Team1 に属していて、Team1 には ProfileA が割り当てられています。
ProfileA には 2 つのレベルのデータアクセスプロファイルがあります。
以下の表は、ProfileA のデータアクセスプロファイルについて説明しています。
データアクセスプロファイル |
アクセス |
ディメンション |
メンバー |
ProfileA |
読込専用 |
エンティティ |
Sales |
ProfileA |
書込 |
エンティティ |
SalesAsia |
この場合、Sales メンバーの読込専用アクセスが、子に引き継がれます。このアクセスの継承は、書込アクセスを SalesAsia (Sales の子孫) に割り当てることで中断され、SalesAsia の子孫には SalesAsia のアクセスが引き継がれるようになります。その結果、User1 は SalesKorea にデータを送信できますが、SalesItaly には送信できません。
同じメンバーが異なる階層に属している場合の競合
メンバーが異なる階層に属しており、メンバーアクセスに競合がある場合は、最も制限が多いアクセスが適用されます。
シナリオ: ProfileA と ProfileB は User1 に割り当てられています。以下の表は、これらのデータアクセスプロファイルについて説明しています。
データアクセスプロファイル |
アクセス |
ディメンション |
メンバー |
ProfileA |
読込専用 |
エンティティ |
WorldWide1 |
ProfileB |
書込 |
エンティティ |
WorldWide2 |
この場合、User1 のアクセスは ProfileB によって決定されます。その結果、ProfileA によって (WorldWide1 階層での) SalesKorea への User1 の書込アクセスが拒否される場合でも、User1 は、SalesKorea にデータを送信できます。
属性ベースのデータアクセスプロファイル
データアクセスプロファイルの登録時に、プロパティに基づいてさまざまなレベルのアクセスを割り当てることができます。ここで説明する例は、以下の階層に基づいています。
ID |
地域 |
国 |
通貨 |
|---|---|---|---|
Entity0 |
ヨーロッパ |
ドイツ |
ユーロ |
— Entity1 |
ヨーロッパ |
ドイツ |
ユーロ |
— — Entity101 |
ヨーロッパ |
イギリス |
GBP |
— — Entity102 |
ヨーロッパ |
フランス |
ユーロ |
— — Entity103 |
ヨーロッパ |
ドイツ |
ユーロ |
— Entity2 |
北米 |
米国 |
USD |
— — Entity201 |
北米 |
米国 |
USD |
— — Entity202 |
北米 |
カナダ |
CAD |
— — Entity203 |
北米 |
メキシコ |
MXN |
例 — 1 つのデータアクセスプロファイル
データアクセスプロファイル DAP1 は、以下のように定義されています。
ルール番号 |
メンバー |
アクセス |
コメント |
結果 |
|---|---|---|---|---|
1 |
Entity1 |
読込 |
Entity1 およびそのすべての子孫への読込アクセス |
Entity1、Entity101、Entity102、Entity103 への読込アクセス |
2 |
国 = ドイツ、通貨 = ユーロ |
書込 |
国がドイツで通貨がユーロのメンバーへの書込アクセス |
Entity0、Entity1、および Entity103 への書込アクセス |
3 |
Entity103 |
拒否 |
Entity103 へのアクセスなし |
Entity103 へのアクセスなし |
データアクセスプロファイルに競合するルールがある場合、優先度は以下のようになります (優先度の高いものから順に)。
メンバーに対して直接定義されたアクセス (ベースメンバーまたは親メンバー)
属性によって定義されたアクセス (継承されない)
例定義された属性が Currency=Euro: Read および Country=France: Write である場合は、Entity102 が書込可能です。
親から継承したアクセス
(階層の最上部にある仮想の親に対して定義されたように) "すべてのメンバー" に対して定義されたアクセス
結果は以下の表に示されています。
ID |
アクセス |
コメント |
|---|---|---|
Entity0 |
書込 |
ルール番号 2 によって定義されます。 |
Entity1 |
読込 |
ルール番号 1 によって読込アクセスが定義され、ルール番号 2 によって書込アクセスが定義されています。ルール番号 1 は、Entity1 に直接適用されるため、適用されます。 |
Entity101 |
読込 |
ルール番号 1 によって定義されます。 |
Entity102 |
読込 |
ルール番号 1 によって定義されます。 |
Entity103 |
拒否 |
ルール番号 1 によって読込アクセスが定義され、ルール番号 2 によって書込アクセスが定義され、ルール番号 3 によって拒否アクセスが定義されます。ルール番号 3 は、Entity103 に直接適用されるため、適用されます。 |
Entity2 |
拒否 |
ルールが存在しない場合、アクセスはデフォルトで拒否されます。 |
Entity201 |
拒否 |
ルールが存在しない場合、アクセスはデフォルトで拒否されます。 |
Entity202 |
拒否 |
ルールが存在しない場合、アクセスはデフォルトで拒否されます。 |
Entity203 |
拒否 |
ルールが存在しない場合、アクセスはデフォルトで拒否されます。 |
例 - 2 つのデータアクセスプロファイル
データアクセスプロファイル DAP2 は、以下のように定義されています。
ルール番号 |
メンバー |
アクセス |
コメント |
結果 |
|---|---|---|---|---|
1 |
すべてのメンバー |
読込 |
すべてのメンバーへの読込アクセス |
すべてのメンバーへの読込アクセス |
2 |
Entity1 |
拒否 |
Entity1 およびその子孫へのアクセスなし |
Entity1、Entity101、Entity102、および Entity103 へのアクセスなし |
3 |
通貨 = USD |
書込 |
通貨が USD であるメンバーへの書込アクセス |
Entity2 および Entity201 への書込アクセス |
このデータアクセスプロファイルの結果は以下の表に示されています。
ID |
アクセス |
コメント |
|---|---|---|
Entity0 |
読込 |
ルール番号 1 で定義されます。 |
Entity1 |
拒否 |
ルール番号 1 によって読込アクセスが定義され、ルール番号 2 で拒否アクセスが定義されます。ルール番号 2 は、Entity1 およびその子孫に直接適用されるため、適用されます。 |
Entity101 |
拒否 |
ルール番号 1 によって読込アクセスが定義され、ルール番号 2 で拒否アクセスが定義されます。ルール番号 2 は、Entity1 およびその子孫に直接適用されるため、適用されます。 |
Entity102 |
拒否 |
ルール番号 1 によって読込アクセスが定義され、ルール番号 2 で拒否アクセスが定義されます。ルール番号 2 は、Entity1 およびその子孫に直接適用されるため、適用されます。 |
Entity103 |
拒否 |
ルール番号 1 によって読込アクセスが定義され、ルール番号 2 で拒否アクセスが定義されます。ルール番号 2 は、Entity1 およびその子孫に直接適用されるため、適用されます。 |
Entity2 |
書込 |
ルール番号 1 によって読込アクセスが定義され、ルール番号 3 で書込アクセスが定義されます。ルール番号 3 は、Entity2 のプロパティに直接適用されるため、適用されます。 |
Entity201 |
書込 |
ルール番号 1 によって読込アクセスが定義され、ルール番号 3 で書込アクセスが定義されます。ルール番号 3 は、Entity201 のプロパティに直接適用されるため、適用されます。 |
Entity202 |
読込 |
ルール番号 1 によって定義されます。 |
Entity203 |
読込 |
ルール番号 1 によって定義されます。 |
複数のデータアクセスプロファイルが 1 人のユーザまたは 1 つのチームに割り当てられている場合、すべてのプロファイルの制限が最も少ないルールの組合せが適用されます。そのため、DAP1 と DAP2 の両方がユーザに割り当てられている場合、そのユーザには以下の権限が付与されます。
ID |
DAP1 によって付与されるアクセス |
DAP2 によって付与されるアクセス |
結果 |
|---|---|---|---|
Entity0 |
書込 |
読込 |
書込アクセス |
Entity1 |
読込 |
拒否 |
読込アクセス |
Entity101 |
読込 |
拒否 |
読込アクセス |
Entity102 |
読込 |
拒否 |
読込アクセス |
Entity103 |
拒否 |
拒否 |
アクセス拒否 |
Entity2 |
拒否 |
書込 |
書込アクセス |
Entity201 |
拒否 |
書込 |
書込アクセス |
Entity202 |
拒否 |
読込 |
読込アクセス |
Entity203 |
拒否 |
読込 |
読込アクセス |