1

例を使用して私の問題を説明しましょう -

ルート ロケーション Mumbai (ロケーション階層のルート要素) と 2 つの子 Andheri と Bandra があるとします。

私にはマネージャーと工場エンジニアの 2 つの役割があります。マネージャーはムンバイの下にあるすべての場所にアクセスでき、プラント エンジニアはルート要素 (ムンバイ) の子レベルのアクセス権があります。

私には、従業員「A」がマネージャー、従業員「B」、「C」、「D」の 4 人の従業員がプラント エンジニアとして勤務しています。

「B」、「C」、および「D」はプラント エンジニアであるため、3 つすべてが Andheri および Bandra レベルの場所にアクセスできますが、XACML ポリシーを通じて、プラント エンジニア「B」および「D」が特権を持つ必要があるという条件を適用したいと考えています。 Andheri の場所のみにアクセスするには、プラント エンジニア「C」には、Andheri と Bandra の両方の場所にアクセスする権限が必要です。

上記の条件を満たすことができる XACML ポリシーをどのように記述すればよいかわかりません。

4

1 に答える 1

0

私が理解しているように、「マネージャー」および「プラント エンジニア」のロールに対しては正常に機能するロール ベースの XACML ポリシーが既にあるようですが、ユーザーごとに場所への制限付きアクセスを許可するには、追加のチェックが必要です。

特に従業員の場合、ユーザーが変更され続け、システムから削除/非アクティブ化されるため、維持するのが難しいため、ユーザー名に基づいてポリシーを作成しないでください。ここで私が提案するより良い方法は、ユーザープロファイルに追加の属性を持つことです。たとえば、「allowedLocation」の値は「Andheri」または「Bandra」になる可能性があり、リソースにアクセスしたかどうかをチェックする XACML ポリシーを持つことができます (つまり、プラントが「Andheri」または"Bandra") がユーザー属性値 "allowedLocation" と等しい場合、アクセスを許可します。

この場合、プラントごとに 1 つのポリシーを作成するか、2 つのルールを持つ単一の汎用ポリシーを作成することができます。

  • ルール 1 : アクセスされたリソース = ユーザー属性 "allowedLocation" の値の場合、"許可"
  • ルール 2 : Else "拒否"
于 2016-07-02T01:20:52.953 に答える