0

これは、アーキテクチャ上の問題です。さまざまなタイプのユーザーがシステムにログインしていて、「顧客」エンティティがあると仮定します。ユーザーの権限に応じて、「customer」プロパティのさまざまなサブセットを返したい場合があります。また、特定のプロパティのみの編集を許可したい場合もあります。

どの道を進むべきかについて何か提案はありますか?これまで私が考えたオプションは次のとおりです。

  1. アクセス許可レベルごとに、モデルを拡張し、ユーザーのアクセス許可に基づいて最も遠い子孫を返します。入力側で、最も遠い子孫を受け入れ、正しい子孫にのみキャストします。(多くの暗黙のロジックのようです-あまりエレガントではないようです)
  2. さまざまなメソッドを作成します(APIが乱雑で、公開したいよりも多くの機能を意味します)

他に何か提案はありますか?

ありがとう

4

1 に答える 1

2

あなたが説明しているのは、XACMLの明確なユースケースです。XACML は eXtensible Access Control Markup Language です。属性 (ユーザー、リソース、環境など) を使用して、きめ細かいアクセス制御を定義できます。

ポリシーベースであるため、次のように記述できます。

  • ユーザーは、ユーザーと同じ地域にある顧客レコードを表示できます
  • ユーザーは、自分が直接割り当てられている顧客レコードを編集できます
  • 監査人は、機密フィールドを除くビジネス ユニット全体の顧客レコードを表示できます

いくつかの XACML エンジンがあります (WSO2、Java 用の Heras AF、.NET 用の Axiomatics )。

私はかなりの数の ASP .NET Web アプリを .NET 4.0 フレームワークで開発し、プレゼンテーション層、WCF 層、およびデータ層で承認を適用することができました。追加情報については、お気軽に ping を送信してください。

于 2013-02-08T12:16:28.423 に答える