Non RBAC User Roles and Permissions System: eine Rolle mit Eigenschaften

Wir sind momentanEntwerfe a Benutzerrollen- und Berechtigungssystem in unserer Webanwendung (ASP.NET), und es scheint, dass wir mehrere @ habFäll Das nicht passen innerhalb des klassischen Rollenbasierte Zugriffssteuerung (RBAC). Ich werde mehrere Fragen stellen, die sich jeweils einem bestimmten Fall widmen. Dies ist meine zweite Frage (die erste Frage ist hier:Non RBAC User Roles and Permissions System: Überprüfen der Stadt des Benutzers).

Wir haben den folgenden Fall: Wir müssen ein @ implementierManager Rolle in unserer Webanwendung. Ein Manager kann jedochzu einer oder mehreren Firmen gehören (innerhalb einer großen Gruppe von Unternehmen, für die wir diese Web-App erstellen). Angenommen, es kann "Manager von Unternehmen A und B", "Manager von Unternehmen C" usw. geben.

Abhängig von den Unternehmen, denen der Manager angehört, hat erZugrif zu bestimmten Vorgängen: Beispielsweise kann er nur mit Kunden der Unternehmen kommunizieren, denen er angehört. Das heißt, „Manager von Unternehmen A und B“ können nur Kontakte zu Kunden von Unternehmen A und B und nicht zu Kunden von Unternehmen C haben. Er kann auch Kundendetailseiten von Unternehmen A und B und nicht von Unternehmen C usw. Anzeigen .

Es scheint, dass dieser Fall in den RBAC fällt. Dies ist jedoch nicht wirklich der Fall. Wir müssen ein @ erstellManagerRole class das wird ein @ habUnternehmenseigenschaft - das heißt, dies ist nicht nur eine Rolle als Sammlung von Berechtigungen (wie im klassischen RBAC), sondern ein Rolle mit Eigenschaften!

Dies war nur ein Beispiel für eine Rolle mit Eigenschaften. Es wird andere geben: zum Beispiel einAdministratorrolle das wird auch einer Reihe von Unternehmen gehören und wird auch andere benutzerdefinierte Eigenschaften haben.

Dies bedeutet, dass wir eine Hierarchie oder Rollenklassen werden:


class Role – base class  
class ManagerRole : Role  
    List Companies  
class AdministratorRole : Role  
    List Companies  
    Other properties

Wir haben reines RBAC und dessen Implementierung in verschiedenen Systemen untersucht undfound no systems mit einem Hierarchie oder Rollen, jeweils mit benutzerdefinierten Eigenschaften. In RBAC sind Rollen nur Sammlungen von Berechtigungen.

Wir könnten unsere Fälle mit @ modellierpermission mit Eigenschaften, wie ManagerPermission, AdministratorPermission, aber dies hat viele Nachteile. Die Hauptursache ist, dass wir einem Benutzer keine Rolle wie "Manager von Unternehmen A und B" direkt zuweisen können, sondern eine Rolle mit erstellen müssen a ManagerPermission für Unternehmen A und B… Außerdem scheint ein "Manager" aus sprachlicher Sicht eher eine "Rolle" (Position im Unternehmen) als eine "Erlaubnis" zu sein.

Würde mich über Anregungen zu diesem Thema sowie über Erfahrungen auf diesem Gebiet freuen!

Vielen Dank

Antworten auf die Frage(8)

Ihre Antwort auf die Frage