Wann sollte ich ACL in meiner Anwendung verwenden?

8

Ich bin ziemlich verwirrt darüber, wann ich ein ACL (Access Control List) -System in meiner Anwendung implementieren sollte . Ich kann jedoch leicht Berechtigungen für Gruppen verwalten, indem ich einfach die Sitzungsgruppen-ID abrufe und die Zugriff mit der Auth-Komponente.

Wie ist eine ACL-Lösung besser als der oben beschriebene Ansatz (Beschränkung des Gruppenzugriffs anhand der Gruppen-ID)?

Wie vereinfacht die Implementierung einer ACL-Lösung die Verwaltung von Zugriffsrechten in Ihrer Anwendung?

Bis jetzt habe ich gelernt, dass durch die ACL Berechtigungen zur Laufzeit gewährt und widerrufen werden können, aber diese Funktionalität ist auch ohne Verwendung einer ACL erreichbar.

Ich bin sehr verwirrt darüber, bitte helfen Sie mir, das Konzept zu verstehen, wann Sie ACL und die Vorteile der Verwendung von ACL in Ihrer Webanwendung nutzen sollten.

Ich bevorzuge Code mit cakePHP v1.3, also wäre es toll, wenn die Erklärung im Kontext von cakephp gegeben wird, aber jede Hilfe (Sprache / Technologie unabhängig) in Verbindung mit meiner Frage wird sehr geschätzt.

    
Gaurav Sharma 02.07.2010, 09:29
quelle

2 Antworten

10

Sie müssen ACLs (oder einen äquivalenten Benutzerberechtigungsmechanismus wie Benutzer- und Berechtigungstabellen für literale Datenbanken) statt Gruppen verwenden, wenn Sie den Zugriff auf einzelne -Einheiten steuern müssen, die sich dynamisch ändern . Dateisysteme hängen ACLs an einzelne Dateien an, da Sie für jede Datei keine separate Gruppe erstellen möchten. Datenbankmanager hängen ACLs aus dem gleichen Grund an Datenbanken, Tabellen, Ansichten, gespeicherte Prozeduren und was auch immer an. Web-Server befassen sich auf dieselbe Weise mit Web-Anwendungen.

In einer Geschäftsanwendung, die sich mit Geschäftsentitäten befasst, möchten Sie möglicherweise den Zugriff auf Entitäten wie z. verschiedene Kundenaufträge, Kunden, Produkte oder Abteilungen innerhalb Ihres Unternehmens, in denen nicht jeder die gleichen Entitäten erstellen / aktualisieren oder sogar lesen darf. Wenn zum Beispiel Vertriebsmitarbeiter in direktem Wettbewerb um Boni stehen, möchten sie nicht, dass alle anderen alle Informationen über ihre CRM-gespeicherten Interessenten sehen.

In der Regel wollen Sie Ihre Zugriffsmechanismen jedoch so grobkörnig wie möglich halten: Gruppen sind normalerweise gut genug. Feinkörnige Zugriffskontrollmechanismen neigen dazu, komplex, teuer, ungenau und schwer zu verwenden, richtig zu verwenden. Sie können sogar die Sicherheit verringern, da administrative Frustration Menschen dazu ermutigt, clevere Workarounds zu finden ...

    
Pontus Gagge 02.07.2010, 10:11
quelle
0

Ich denke, dass ACL-Techniken zur Sicherung des Benutzerzugriffs auf Ressourcen nur für eine typische oder mittelgroße Anwendung nützlich sind. Für große Anwendungen wie CRM oder Financial Data Warehouses werden ACLs nicht in der Lage sein, einen sehr komplexen Satz von Benutzer- / Ressourcenpaaren zu verwalten. Wenn die Daten in Größe, Art und Volumen zunehmen, werden auch die zu diesem Zweck erstellten ACLs-Tabellen erhöht Es macht für mich keinen Sinn, den Datenbankserver mit ACL-Tabellen zu überladen. Es gibt viele andere Techniken, die verwendet werden, um Sicherheitszugriff und Berechtigungen und Berechtigungen zu installieren ... Die Verwendung von ACL-Dateien klingt stattdessen nicht schlecht, aber es ist keine gute Idee, da Dateien von Zeit zu Zeit beschädigt werden können habe keinen Zugriff auf eine Datei, die ACL-Regeln enthält, oder auf eine nicht existierende Datei oder eine verlorene zugreifen ... Die einzige Möglichkeit, mit Erlaubnis zu spielen, ist die Verwendung der Geschäftstabellen, die im Zusammenhang oder im Zweck Ihrer Anwendung mit Beziehungen zwischen verwendet werden Ihre Tabellen und einige Logik, die Sie zu Ihren Service Side Scripts hinzufügen können, wenn Sie unter MVC Architecture oder sonst wo sind ... Vermeiden Sie die Verwendung von ACL für sehr große Anwendungen.

    
Shabasha 19.08.2015 10:56
quelle

Tags und Links