ACLs programmieren

Die Beispielanwendung, die wir in diesem Beitrag vorstellen, weist eine Struktur auf, bei der die Methoden und Eigenschaften der Klassen NotesACL und NotesACLEntry genutzt werden, um ACLs in definierter Form für ausgewählte Datenbanken zu setzen. Damit lassen sich einfacher standardisierte Zugriffsberechtigungen durchsetzen.

ab Domino 5.x

Die Grundlagen der Bearbeitung von ACLs über LotusScript wurden im ersten Teil der Serie in Heft 10/2005 von Expert’s inside Lotus Notes/Domino vorgestellt. Dabei wurde ein Überblick über die beiden Klassen NotesACL und NotesACLEntry gegeben.

Um eine Anwendung zu realisieren, mit deren Hilfe ACLs standardisiert gesetzt werden, gibt es unterschiedliche Ansätze, die primär davon abhängen, was erreicht werden soll. So könnte in Datenbanken standardisiert ein Agent eingebettet werden, der regelmäßig in einer zentralen administrativen Datenbank nach Änderungen bei den Sicherheitsrichtlinien sucht und diese in den lokalen ACLs umsetzt.

Serie

Teil 1: Grundlagen und Überblick über die Klasse
Teil 2: Eine Anwendung zum Setzen von ACLs: Die Struktur
Teil 3: Eine Anwendung zum Setzen von ACLs: Der Code
Teil 4: Eine Anwendung zur Dokumentation der ACLs von Datenbanken

Das Beispiel in dieser Serie wird aber einen anderen Ansatz verfolgen. Es wird eine Anwendung erstellt, in der Datenbank, Benutzer und Zugriffsniveaus ausgewählt werden können. Einem im Domino Directory definierten Benutzer bzw. einer Benutzergruppe kann für eine oder mehrere Datenbanken ein definiertes Zugriffsrecht zugewiesen werden.

Darüber hinaus wird die Anwendung auch die Festlegung von erweiterten Attributen umfassen, also Einstellungen wie Delete documents oder Read public documents. Die konfigurierten Änderungen wird ein LotusScript-Agent anschließend in den festgelegten Datenbanken umsetzen.

Auch diese Basisanwendung könnte man noch erweitern, indem man in ihr Dokumente erstellt, in denen solche Zuordnungen beschrieben sind. Diese Dokumente könnten anschließend in einer Art Batch verarbeitet werden. Das würde es auch erleichtern, eine solche Verarbeitung beispielsweise nachts durchzuführen, um die Last auf produktive Systeme gering zu halten.

Für eine produktive Nutzung würde sich zudem zumindest ein Vergleich mit bereits gesetzten Zugriffsberechtigungen anbieten, um Konflikte zu vermeiden. Auf das Auslesen von Berechtigungen wird aber erst zu einem späteren Zeitpunkt in dieser Serie eingegangen.

Wie geht es weiter?

Den Code der Anwendung werden wir im dritten Serienteil vorstellen. Der Schwerpunkt wird dabei auf der konkreten Nutzung der Methoden und Eigenschaften der beiden Klassen zur Bearbeitung von ACLs liegen. Um die Funktionalität umzusetzen, ist allerdings weiterer Code beispielsweise erforderlich, um die Datenbanken und Benutzer nicht von Hand festlegen zu müssen. Auch dieser wird erläutert.

Auf die Methoden und Eigenschaften, mit denen ACLs ausgelesen werden können, werden wir im vierten Teil der Serie näher eingehen. Dort wird eine Anwendung vorgestellt, mit der sich ACLs in Datenbanken dokumentieren lassen.