2011-03-12 19 views
1


カテゴリのデータを公開する必要があるアプリケーションがあります。例えば
を:ROLE_CAMPAIGNと
ユーザAは、ROLE_CAMPAIGNとキャンペーン _category_id = 5
ユーザBは、(5,10,4)
(IN キャンペーン _category_id挿入、選択する場合にのみ見ることができる唯一の場所を確認することができ更新、削除)春のセキュリティ - 動的な役割

ユーザーとキャンペーンは休止状態のエンティティです。私はそれがネイティブ SQL

SELECT * FROM CAMPAIGNS WHERE CATEGORY_ID IN (SELECT ID FROM USER_CATEGORIES) 

と上と上に変換する場合は
の接続は、多対多(ユーザーCampaignsCategoriesを持っている)
です。

何らかの役割を持つユーザーにダイナミックを実装する正しい方法は何ですか。

少しの例が役立ちます。

(春のセキュリティ3)

+0

カテゴリはユーザーの属性ですか? – Ritesh

+0

申し訳ありません、投稿を編集します。これはキャンペーンの属性です – fatnjazzy

+0

Compaignの設定方法は?それは春の豆ですか? – Ritesh

答えて

2

あなたはセキュリティモデルの欠点への技術的な解決策を探しています。

同じ役割の人には同じアクセス権が必要です。

セキュリティの決定がこの条件に従わない場合は、ロールをより細かく再定義する必要があります。

+0

を編集するか、この種のアクセス制御をカバーする役割を使用しないでください。 Spring SecurityはRBACだけでなく、それ以上のことをすることができますが、それは最もよくサポートされている形式です。 –

+0

@Donal:はい、私は同意しますが、OPが探していたものではないように思われる質問の性質を与えられました。 –

+0

そのようなスティック構造をどのように実装するかについてのあなたの考えはどうですか?つまり、特定の従業員が自分のデータを見ることができるのは非常に一般的な状況ですが、ROLE_EMPLOEEです。私は春のセキュリティがそれをカバーすると信じています、これはセキュリティの問題です。ありがとう – fatnjazzy

0

あなたが探している回答ではありません。アクセス制御リストは、Emanuelが述べたように、問題の解決策です。ロールを使用するように構成されている場合のSpringセキュリティは、同じロールを持つ2人のユーザーをネイティブに区別できません。

0

通常、RBACは制御されたエンティティごとに異なる権限を与えることはできません。 RBACは2次元です - パーミッションX ROLE。通常、どのコンテンツが制御されているかをテストするためのメカニズムはありません。おそらくこれにはRBACを使用することができますが、それを行うには多くのROLESが必要になります。またいくつかのカスタマイズでは、ACLを作成することになります。一方

ACLは、本質的に3次元である - パーミッションX役割Xオブジェクトのすべてのフルセット、または部分的なセットで互いに対して定義されることが可能である:完全に

権限X役割Xオブジェクト(ACL ) 権限XのROLE(RBAC) ROLEのXオブジェクト(便利?) 権限Xオブジェクト(便利?)

BOTH ACLとRBACsが人々に異なる役割を割り当てることができます。大部分のRBACでは、他の方法でパーミッションを割り当てることはできません。

しかし、多くのACLは、特定のオブジェクト/エンティティに関する人物に直接アクセス許可を割り当てることができます。これがACLのcpabilityであるならば、それは複雑さと速度の喪失の巨大な増加で多くの柔軟性を追加します。 1人のユーザー専用にROLEを作成する方がはるかに優れています。だから、人に許可を直接割り当ててそこに行かないでください。

あなたの問題は、あなたがROLESのタイプを区別していないことがほとんどですが、とにかくRBACがあなたのためにやってくれないということです。 ACLを使用する必要があります。権限対ROLE、ROLE対オブジェクトの表形式の表示を設定することができれば、理解を深めることができます。

最も優れたACLが持つ要素がもう1つあります。Groups of Objects。これは、あなたが一括して行う必要があるか、「あなたが行ったように」許可の割り当てを行うことです。キャンペーンの作成コードは、カテゴリ別にグループをあらかじめ割り当てるため、ロールと権限は自然に発生します。

関連する問題