web-dev-qa-db-ja.com

役割ベースのアクセス制御+データ所有権ベースの権限

RBACシステムの役割によって与えられる権限とデータ所有権に関連する権限を組み合わせる一般的なシステムまたはパターンはありますか?

例えば:

ボブは医者であり、「患者の詳細を表示する」という特権を持つ役割を持っています
ただし、「患者がボブ博士に割り当てられている」場合のみ

上記の例では、関係をアクター(この場合はDoctor Bob)に配置していますが、実際にはグループベースのソリューションを探しています。

例えば:

ボブは医師であり、「表示、患者の詳細」という特権を持つ役割を持っています。
ボブはグループ「A」のメンバーです。
ボブは、グループ「A」に割り当てられた患者のすべての患者詳細を表示できます

私の質問は
上記を行う一般的なアクセスモデルはありますか?

私が見つけた回答の要約
このシナリオには、関連する2つ以上のソリューションがあるようです:パラメータ化されたRBAC(pRBAC)とObject-Sensitive RBAC(ORBAC)。 pRBACソリューションは、私が見つけたものから、ORBACよりも多くの関心を生み出しています。私の意見では、2つのソリューションのうち、よりエレガントで柔軟性があります。

同じアクセス制御の問題を解決しようとする他の研究ラインがありますが、それらはRBACを他のタイプのアクセス制御モデルに置き換えることを目的としています。

22
Jacco

これは非常に良い質問であり、RBACの問題の1つとして確認されています。 パラメータ化されたロール (pdfはオンラインで見つけることができます)に関する一連の研究があり、最近では、関係ベースのアクセス制御のアイデアが浮上しています(P. Fong et al、例えば これ )。どれだけ実装されているかはわかりません。

8
Charles

この問題に対処するために、最新のマルチレベルセキュリティ(MLS)製品を構成できます。これらのシステムは、共有インフラストラクチャでの軍事グレードのデータ保護のために設計されています。通常、システムは、セキュリティラベルに基づいて、役割ベースのアクセス制御(RBAC)、任意アクセス制御(DAC)、および必須アクセス制御(MAC)を使用します。

セキュリティラベルは、不足している要素に対処します。 MLSシステムでは、すべてのオブジェクトにデータとプロセスの両方を含むラベルがあります。ラベルは、医師と特定のグループの状況に対処するためのスキームを提供します。

次に設定例を示します。マスターラベルセット(システムエンコーディングと呼ばれます)には、問題のすべての医師グループに対して個別のグループを持つラベルスキームが含まれています。すべての医師が使用するアプリケーションは、あなたが言及したRBACコントロールによって制限される可能性があります。各医師は、アカウントプロファイルに独自のセキュリティラベルも持つため、そのラベルで定義されたデータにのみアクセスできます。

初期設定は大変な作業ですが、どのドキュメントでどのドキュメントを印刷するかを制御するなど、ドクターグループの制限と同じようにハードウェアの制限を考えるなど、他にもたくさんの便利な機能があります。

MLSのWikipediaページはベンダーを提供します(SOPAブラックアウトでない場合)。オラクルのTrusted Extensions製品には、質問の流れに沿って、オンラインで優れた商用ユースケースの例がいくつかありました。

4
zedman9991

Exchange 2010が使用しているのと同様のパターンがあります。アクセスモデルは、Bindingレイヤーに適用される「Scope」プロパティを使用して制限されます。この実装では、スコープは、認証されたユーザーと「患者」がいるOUの間の「関係」です。

Exchange 2010には委任モデルがあり、 winrm Powershellコマンドレットのグループは本質的に役割にグループ化され、役割はユーザーに割り当てられます。

Exchange Roles Image画像ソース

これは、PowerShellのすべての利点を活用しながら、適切な低レベルのテクノロジ(WCF、SOAPなど)を使用し、クライアント側に追加のソフトウェアを必要としない方法を検討する方法を考慮した、優れた柔軟なモデルです。 。

image of how Exchange 2010 remote admin works画像ソース

これは非常に最新のアプリケーション設計であり、私はそれを自分で模倣しようとしています。 ここにStackOverflowで同様の質問があります

3