0

大規模なシステムでロールベースを使用するには、常に問題があります。このようなソフトウェアでは、スーパーユーザーが組織のユーザー権限を設定できるようにする必要があります。多くのアトミック ロールを作成し、ロールをユーザーに割り当てるためのコンソールを作成できます。次に、多くの役割を作成する必要があります。たとえば、次のようになります。

AddProduct、RemoveProduct、EditProduct、AcceptPurchase、DenayPurchase、...

このように、中規模システムの場合、少なくとも 50 のロールが必要です。次に、管理者が各ユーザーにこれらの役割を割り当てるにはどうすればよいでしょうか?

一見すると、2 つの解決策があります。

  1. ユーザーとロールの間に配置するテーブル (たとえば、Group ) を DB に作成します。次に、管理者は役割のグループを作成し、グループを複数のユーザーに割り当てる必要があります。

  2. 権限のグループとしてロールを使用します。たとえば、PermissionInRoles テーブルを作成し、各ロールにアクセス許可を割り当ててから、そのロールをユーザーに割り当てます。

最初のアプローチはナンセンスだとすぐにわかります。そして、2番目のアプローチでいくつかのプロジェクトを実施しています。しかし今は、WCF RIA 認証サービスに加えて、sivlerlight プロジェクトで使用したいと考えています。役割をサポートするだけです。たとえば、各ユーザー インスタンスにはIsInRoleメソッドがあり、代わりにIsInPermissionメソッドを実装します。

サービスにRequiresRole属性を使用する場合、別の問題があります。各サービスメソッドにハードコードのロール名を付けることはできませんし、したくありません。

役割ベースのセキュリティ設計について、私たちは非常に混乱していることを知っておいてください! これらの状況でどのように使用できますか?

4

1 に答える 1