Wie haben die Leute einen abac Ansatz beim Ausführen von Berichten verwendet oder einfach nur mehrere Datensätze aus einer DB ausgewählt?Wie schützen Sie mit ABAC/XACML Ressourcen in Berichten/großen Ergebnismengen?
Zum Beispiel, wenn Sie eine Politik haben, die besagt:
Ärzte nur Patienten in ihrem Krankenhaus sehen können
Offensichtlich ist der effizienteste Weg, dies zu implementieren, ist ein Filter in der Abfrage enthalten (where hospital = XXX
), aber dies scheint mit dem Principal von ABAC zu brechen, da es die Regel in das SQL selbst bringt.
Ich weiß, Axiomatics bietet einen Reverse-Abfrage-Mechanismus, der anscheinend Filter für Sie basierend auf Regeln erzeugt - aber mein System hat eine Menge komplexer SQL, die ziemlich umgestaltet werden müsste, um damit zu arbeiten.
Wie haben andere Leute mit diesem Problem umzugehen?
Dank David. Ich habe in der letzten Woche eine Menge deiner Kommentare/Beiträge gelesen und hoffte, dass du das sehen würdest. – jbd
Ich glaube, das ist ein inhärentes Problem mit der Autorisierung im Allgemeinen. Ich betrachte einen Ansatz, bei dem der Abfangpunkt vor dem Ausführen der Abfrage auftritt. Beispiel: Ermitteln Sie, ob Alice Dokumente im Krankenhaus X anzeigen kann. Wenn dies der Fall ist, lassen Sie die Abfrage zu. Im Wesentlichen wird die Abfrage selbst zur Ressource, die das Subjekt ausführen möchte. Irgendwelche Rückmeldungen zu diesem Ansatz? Ich bin mir sicher, dass andere dies getan haben. – jbd
Ich habe der Antwort einen neuen Ansatz hinzugefügt. Sie haben recht, dass es zwei Ebenen der Zugriffskontrolle gibt: die funktionale Kontrolle (Sie haben das Recht, medizinische Aufzeichnungen als Ganzes abzurufen) und die Datenebene eine (Sie können nur Datensätze in Ihrer Abteilung anzeigen) –