Mit Hilfe sogenannter Access Control Lists (ACL, dt. Zugriffssteuerungslisten) kann der Zugriff auf Daten und Funktionen in MyCoRe-Anwendungen eingegrenzt werden. Eine ACL legt dabei fest, in welchem Umfang einzelne Nutzer oder Gruppen Zugriff auf bestimmte Objekte (Metadaten, Dateien, Webseiten …) haben. Diese können sehr feingranular spezifiziert werden, z.B. lesen, erstellen, bearbeiten oder löschen.
ACLs und Privilegien sind in MyCoRe in zwei SQL-Tabellen gespeichert. Die Tabelle MCRACCESS enthält die Zugriffslisten und Privilegien. Ergänzt wird das system durch die Tabelle MCRACCESSRULES, welche die konkreten Regeln für den Zugriff enthält.
Die Aufrufe von Zugriffsrechten können über verschiedene API erfolgen. Hier die Beispiele für JAVA und XSLT.
|
|
|
|
|
|
Privilegien sind Zugriffsrechte, die sich nicht direkt auf ein einzelnes Datenobjekt beziehen. Vielmehr wird der Zugriff auf eine Funktionalität geregelt. Die kann die Erlaubnis für das Anlegen eines Datensatzes create-privileg sein oder das Recht, beispielsweise die WEB-CLI zu nutzen. Einige nötige Privilegien sind an den jeweiligen Stellen in dieser Dokumentation beschrieben.
Privilegien werden in einer entsprechenden Datei definiert und mittels Kommando geladen.
|
|
Das Setzen der Permissions ist stark von der verwendeten Access-Strategie abhängig. So reicht die Palette von Rechten für ganze Datenmodell-Typen über rechte für Datenmodell-Bases (Projekt_Typ) bis hin zu feingranularen Rechten für jedes MCRObject und MCRDerivate. Je feiner die Rechtevergabe, um so größer wird auch die notwendige Tabelle. Dabei wird für jedes Recht (z. B. read, write und delete) jeweils ein Eintrag vorgenommen. Für Anwendungen mit vielen Datensätzen und einer kleinen Autorengruppe ist daher die Vergabe globalerer Permissions (z. B. über ganze Datentypen) sinnvoll und effizient. Gesteuert wird die Nutzung durch die jeweilige Strategie.
Im MyCoRe-Datenmodell ist ein Abschnitt im Bereich services vorgesehen, welcher Zugriffsregeln für genau diesen datensatz enthalten kann. Je nach Strategie werden diese Regeln genutzt und gespeichert. Auch die Java-API enthält eine entsprechende Klasse MCRMetaAccessRule .
Jede Permission beinhaltet Regeln (Conditions), die festlegen, wann das entsprechende Recht gegeben wird.In MyCoRe sind drei Gruppen von Regeln vorgesehen:
Es ist nicht notwendig, alle Gruppen von Regeln zu nutzen. Auch können Gruppen noch logische AND / OR -Container enthalten. Alle Regeln werden in der Tabelle MCRACCESSRULES einmalig abgelegt und von dort referenziert. Eine Übersicht gibt der folgende XML-Ausschnitt:
|
|
Über die MyCoRe Kommandozeile können auch alle administrativen Operationen für die Zugriffskontrolle ausgeführt werden.
load permissions data from file {0}
update permission {0} for id {1} with rulefile {2}
update permission {0} for selected with rulefile {1}
list all permissions
export all permissions to file {0}
delete permission {0}
delete permission {0} for id {1}
delete all permissions for id {1}
delete permission {0} for selected
delete all permissions for selected
delete all permissions