1

MongoDB を使用してプロジェクトを開発しています。たとえば、次の形式のドキュメントがある場合、ロールに基づいてユーザーへのデータの可視性を制限できるシナリオがあります。

{
   "testme1":"fooo",
  "testme2":"foobar"
}

「admin」ロールを持つユーザーは「testme1」と「testme2」の両方を表示できますが、「guest」は「testme2」のみを表示できます。これらの承認ルールを動的に定義して、ラッパー API がルールに従ってのみデータを取得するようにする最善の方法は何ですか。私のアプローチは、ユーザーにルールを定義するためのWeb「UI」を提供し、ユーザーの宣言に基づいてサーバーに「XML」ファイルを保持することです。誰かがより良いアイデアを持っているかどうか、また、これを行うためのデータベースレベルのアプローチがあるかどうかを教えてください

4

1 に答える 1

1

承認ポリシーを定義するために使用できる承認標準が存在します。この標準は、XACML (eXtensible Access Control Markup Language) と呼ばれます。属性ベースのアクセス制御 (ABAC) と呼ばれる承認モデルを実装します。ここで両方のトピックについて読むことができます:

XACML は、次の概念でアーキテクチャを定義します。

  • ポリシー決定ポイント (PDP)、
  • ポリシー実施ポイント (PEP)、および
  • ポリシー情報ポイント (PIP)。

典型的なフローでは、PEP はデータ / サービス / API を保護します。PEP は承認要求を PDP に送信します。

  • ユーザー Alice はレコード #123 を表示できますか?

PDP は PIP を使用して、ユーザーの役割やクリアランスなどの欠落している属性と、データの機密性、ホワイトリストまたはブラックリストなどのリソース属性を取得します... 新しい情報に基づいて、PDP は決定に達することができます:許可または拒否します。アクセスが許可またはブロックされています。

XACML では、許可ポリシーの豊富さに制限はありません。私は、XACML を実装するAxiomaticsという会社で働いています。私たちのソリューションは、製造、医療、銀行業務で使用され、動的な方法で機密データへのアクセスを保護します (たとえば、管理者は自分が所有するドキュメントを編集できます)。

XACML は、一元管理される外部化された承認を可能にします。また、XACML を Web API、ビジネス ロジック、プレゼンテーション UI、およびデータベースに適用できることを意味する、任意の深さの認証と私が呼んでいるものも可能にします。

HTH

于 2014-02-17T08:41:19.683 に答える