Die Aktivierung des Zugriffs auf ein CRX-Repository umfasst mehrere Themen:
Nachfolgend sind die grundlegenden Elemente aufgeführt:
Benutzerkonten CRX authentifiziert den Zugriff durch Identifizieren und Überprüfen eines Benutzers (durch die betreffende Person oder eine andere Anwendung) gemäß den im Benutzerkonto gespeicherten Details.
In CRX stellt jedes Benutzerkonto einen Knoten im Workspace dar. Ein CRX-Benutzerkonto weist die folgenden Eigenschaften auf:
Es repräsentiert einen Benutzer von CRX.
In ihm sind ein Benutzername und ein Kennwort gespeichert.
Es gilt für diesen Workspace.
Es kann keine Unterbenutzer haben. Verwenden Sie für hierarchische Zugriffsrechte Gruppen.
Sie können Zugriffsrechte für das Benutzerkonto festlegen.
Zur Vereinfachung der Verwaltung raten wir jedoch, (in der Mehrzahl der Fälle) Zugriffsrechte zu Gruppenkonten zuzuweisen. Bei der Zuweisung von Zugriffsrechten zu jedem einzelnen Benutzer kann die Verwaltung schnell sehr schwierig werden (Ausnahmen sind bestimmte Systembenutzer, wenn nur ein oder zwei Instanzen vorhanden sind).
Gruppenkonten Gruppenkonten sind Sammlungen von Benutzern und/oder anderen Gruppen. Sie dienen zur Vereinfachung der Verwaltung, da eine Änderung der einer Gruppe zugewiesenen Zugriffsrechte automatisch auf alle Benutzer in dieser Gruppe angewendet wird. Ein Benutzer muss nicht unbedingt Mitglied einer Gruppe sein, gehört aber häufig zu mehreren.
In CRX verfügt eine Gruppe über die folgenden Eigenschaften:
Zugriff RightsCRX verwendet Zugriffsrechte, um den Zugriff auf bestimmte Bereiche des Repositorys zu steuern.
Dies erfolgt über die Zuweisung von Berechtigungen, um den Zugriff auf eine Ressource (Knoten oder Pfad) im Repository zuzulassen oder abzulehnen. Da zahlreiche Berechtigungen zugewiesen werden können, müssen sie ausgewertet werden, um festzustellen, welche Kombination für die aktuelle Anfrage relevant ist.
CRX ermöglicht es Ihnen, die Zugriffsrechte für Benutzer- und Gruppenkonten zu konfigurieren. Es werden dann dieselben grundlegenden Auswertungsprinzipien auf beide angewendet.
In CRX wird die Zugriffssteuerung gemäß der Definition in JSR-283 implementiert.
Die Standardinstallation eines CRX-Repositorys ist so konfiguriert, dass sie die ressourcenbasierten Zugriffssteuerungslisten verwendet. Dies ist eine mögliche Implementierung der JSR-283-Zugriffssteuerung und eine der Implementierungen in Jackrabbit.
CRX verwendet zwei Hauptkonzepte zur Bewertung der Zugriffsrechte:
Ein Prinzipal ist eine Entität, die die Zugriffsrechte enthält. Prinzipale beinhalten:
Ein Benutzerkonto
Ein Gruppenkonto
Wenn ein Benutzerkonto zu einer oder mehreren Gruppen gehört, ist es auch mit jedem dieser Gruppenprinzipale verknüpft.
Ein Objekt repräsentiert die Quelle einer Anfrage.
Es dient zur Konsolidierung der für diese Anfrage relevanten Zugriffsrechte. Diese stammen von:
Benutzerprinzipal
Die Rechte, die Sie direkt dem Benutzerkonto zuweisen.
Alle diesem Benutzer zugeordneten Gruppen-Prinzipale
Alle Rechte, die einer der Gruppen zugewiesen sind, denen der Benutzer angehört.
Das Ergebnis wird anschließend verwendet, um den Zugriff auf die angeforderte Ressource zuzulassen oder abzulehnen.
In CRX ist das Objekt abhängig von:
Die Liste der Zugriffsrechte, die für das Objekt relevant sind, wird erstellt aus:
Wenn CRX die Anfrage verarbeitet, vergleicht es die Zugriffsanfrage des Objekts mit der Liste der Zugriffssteuerung im Repository-Knoten:
Wenn Linda also den Knoten /features
in der folgenden Repository-Struktur aktualisieren möchte:
Zugriffsrechte in CRX werden wie folgt bewertet:
Benutzerprinzipale haben stets Vorrang vor Gruppenprinzipalen – unabhängig von:
Bei einem gegebenen Prinzipal ist (maximal) 1 Ablehnungs- und 1 Zulassungseintrag in einem gegebenen Knoten vorhanden. Die Implementierung löscht immer redundante Einträge und stellt sicher, dass dieselbe Berechtigung nicht sowohl in den Zulassungs- als auch in den Ablehnungseinträgen aufgeführt wird.
Dieser Bewertungsprozess ist für die ressourcenbasierte Zugriffssteuerung einer CRX-Standardinstallation geeignet.
Nachfolgend sehen Sie zwei Beispiele, in denen der Benutzer aUser
Mitglied der Gruppe aGroup
ist:
+ parentNode
+ acl
+ ace: aUser - deny - write
+ childNode
+ acl
+ ace: aGroup - allow - write
+ grandChildNode
Im obigen Fall:
aUser
keine Schreibberechtigung für grandChildNode
. + parentNode
+ acl
+ ace: aUser - deny - write
+ childNode
+ acl
+ ace: aGroup - allow - write
+ ace: aUser - deny - write
+ grandChildNode
In diesem Fall:
aUser
keine Schreibberechtigung für grandChildNode
.aUser
ist redundant.Zugriffsrechte von mehreren Gruppenprinzipalen werden basierend auf ihrer Reihenfolge innerhalb der Hierarchie und innerhalb einer einzigen Zugriffssteuerungsliste bewertet.
Die nachfolgende Tabelle enthält einige Empfehlungen und Best Practices:
Empfehlung... | Grund... |
Gruppen verwenden | Vermeiden Sie die Zuweisung von Zugriffsrechten für jeden Benutzer. Dafür gibt es mehrere Gründe:
|
Positiv sein | Verwenden Sie immer Anweisungen zum Zulassen, um die Zugriffsrechte des Gruppenprinzips anzugeben (wo immer möglich). Vermeiden Sie Anweisungen vom Typ „Ablehnen“. Gruppenprinzipale werden der Reihenfolge nach innerhalb der Hierarchie und innerhalb einer einzelnen Zugriffssteuerungsliste bewertet. |
Einfach | Wenn Sie etwas Zeit investieren und denken, wenn Sie eine neue Installation konfigurieren, werden Sie gut bezahlt. Eine klare Struktur vereinfacht die fortlaufende Wartung und Verwaltung, sodass sowohl aktuelle Kollegen als auch Nachfolger die Implementierung problemlos verstehen können. |
Testen | Verwenden Sie eine Testinstallation, um zu praktizieren und sicherzustellen, dass Sie die Beziehungen zwischen den verschiedenen Benutzern und Gruppen verstehen. |
Standardbenutzer/Gruppen | Aktualisieren Sie die Standardbenutzer und -gruppen immer sofort nach der Installation, um Sicherheitsprobleme zu vermeiden. |
Für die Benutzerverwaltung wird ein Standard-Dialogfeld verwendet.
Sie müssen sich beim jeweiligen Workspace anmelden und können dann wie folgt auf das Dialogfeld zugreifen:
Eigenschaften
UserID
Kurzer Name des Kontos, der beim Zugriff auf CRX verwendet wird.
Prinzipalname
Ein vollständiger Textname für das Konto.
Kennwort
Wird benötigt, wenn Sie mit diesem Konto auf CRX zugreifen.
ntlmhash
Wird automatisch jedem neuen Konto zugewiesen und bei Änderung des Kennworts aktualisiert
Sie können neue Eigenschaften hinzufügen, indem Sie einen Namen, einen Typ und den Wert definieren. Klicken Sie auf „Speichern“ (grünes Häkchen-Symbol) für jede neue Eigenschaft.
Gruppenmitgliedschaft
Hier werden alle Gruppen angezeigt, die zu diesem Konto gehören. Die Spalte Übernommen zeigt Mitgliedschaften an, die durch eine Mitgliedschaft bei einer anderen Gruppe übernommen wurden.
Durch Klicken auf eine Gruppen-ID (falls verfügbar) wird die Gruppenverwaltung für diese Gruppe geöffnet.
Darsteller
Mit der Funktion „Stellvertretend agieren“ kann ein Benutzer im Auftrag eines anderen Benutzers arbeiten.
Dies bedeutet, dass über ein Benutzerkonto andere Konten (Benutzer oder Gruppe) festgelegt werden können, die mit ihrem Konto arbeiten können. Anders ausgedrückt: Wenn Benutzer B stellvertretend für Benutzer A agieren darf, kann Benutzer B Aktionen unter Verwendung aller Kontodetails des Benutzers A (einschließlich ID, Name und Zugriffsrechte) ausführen.
Hierdurch kann der Stellvertreter (Darsteller) Aufgaben so abschließen, als würde er das Konto verwenden, für das er stellvertretend agiert, etwa bei Abwesenheit oder zur kurzfristigen Entlastung anderer überlasteter Benutzer.
Wenn ein Konto stellvertretend für ein anderes agiert, ist dies sehr schwierig zu erkennen. In den Protokolldateien werden keine Informationen dazu gespeichert, ob bei den Ereignissen jemand stellvertretend agiert hat. Wenn also Benutzer B stellvertretend für Benutzer A agiert, sehen alle Ereignisse so aus, als ob sie von Benutzer A persönlich ausgeführt wurden.
Öffnen Sie das Dialogfeld Benutzerverwaltung.
Klicken Sie auf Benutzer erstellen.
Sie können dann die Eigenschaften eingeben:
Klicken Sie auf die Schaltfläche „Speichern“ (grünes Häkchen-Symbol).
Daraufhin wird das Dialogfeld erweitert und Sie können Folgendes tun:
Es kann manchmal zu einer Beeinträchtigung der Leistung kommen, wenn neue Benutzer in Installationen registriert werden, die eine hohe Anzahl haben an:
Dadurch wird der Knoten für diesen Prinzipal aus dem Repository entfernt.
Zugriffsrechte-Einträge werden hingegen nicht entfernt. So wird die historische Integrität gesichert.
Sie können Eigenschaften für neue oder vorhandene Konten definieren:
Vorhandene Eigenschaften können mit dem Papierkorb-Symbol gelöscht werden.
Mit Ausnahme des Kennworts können Eigenschaften nicht bearbeitet werden, sie müssen gelöscht und neu erstellt werden.
Das Kennwort ist eine spezielle Eigenschaft, die durch Klicken auf den Link Kennwort ändern geändert werden kann.
Sie können über das Menü Sicherheit im CRX Explorer auch das Kennwort für Ihr eigenes Benutzerkonto ändern.
Sie können Darsteller für neue oder vorhandene Konten definieren:
Öffnen Sie das Dialogfeld Benutzerverwaltung für das entsprechende Konto.
Geben Sie das Konto an, dem es gestattet sein soll, stellvertretend für dieses Konto zu agieren.
Sie können "Durchsuchen"verwenden… , um ein vorhandenes Konto auszuwählen.
Klicken Sie auf „Speichern“ (grünes Häkchen-Symbol) für die neue Eigenschaft.
Für die Gruppenverwaltung wird ein Standard-Dialogfeld verwendet.
Sie müssen sich beim jeweiligen Workspace anmelden und können dann wie folgt auf das Dialogfeld zugreifen:
Eigenschaften
GroupID
Kurzname für das Gruppenkonto.
Prinzipalname
Ein vollständiger Textname für das Gruppenkonto.
Sie können neue Eigenschaften hinzufügen, indem Sie einen Namen, einen Typ und den Wert definieren. Klicken Sie auf „Speichern“ (grünes Häkchen-Symbol) für jede neue Eigenschaft.
Mitglieder
Sie können Benutzer oder andere Gruppen als Mitglieder dieser Gruppe hinzufügen.
Gruppenmitgliedschaft
Hier werden alle Gruppen angezeigt, die zu diesem aktuellen Gruppenkonto gehören. Die Spalte Übernommen zeigt Mitgliedschaften an, die durch eine Mitgliedschaft bei einer anderen Gruppe übernommen wurden.
Wenn Sie auf eine Gruppen-ID klicken, wird das Dialogfeld für diese Gruppe geöffnet.
Mitglieder
Hier werden alle Konten (Benutzer und/oder Gruppen) aufgelistet, die Mitglieder der aktuellen Gruppe sind.
Die Spalte Übernommen zeigt Mitgliedschaften an, die durch eine Mitgliedschaft bei einer anderen Gruppe übernommen wurden.
Wenn die Eigentümer-, Bearbeiter- oder Betrachterrolle einem Benutzer in einem beliebigen Asset-Ordner zugewiesen wird, wird eine neue Gruppe erstellt. Der Gruppenname hat das Format mac-default-<foldername>
für jeden Ordner, für den die Rollen definiert sind.
Öffnen Sie das Dialogfeld Gruppenverwaltung.
Klicken Sie auf Gruppe erstellen.
Sie können dann die Eigenschaften eingeben:
Klicken Sie auf die Schaltfläche „Speichern“ (grünes Häkchen-Symbol).
Daraufhin wird das Dialogfeld erweitert und Sie können Folgendes tun:
Dadurch wird der Knoten für diesen Prinzipal aus dem Repository entfernt.
Zugriffsrechte-Einträge werden hingegen nicht entfernt. So wird die historische Integrität gesichert.
Sie können Eigenschaften für neue oder vorhandene Konten definieren:
Vorhandene Eigenschaften können mit dem Papierkorb-Symbol gelöscht werden.
Sie können der aktuellen Gruppe Mitglieder hinzufügen:
Öffnen Sie das Dialogfeld Gruppenverwaltung für das entsprechende Konto.
Führen Sie einen der folgenden Schritte durch:
Klicken Sie auf „Speichern“ (grünes Häkchen-Symbol) für die neue Eigenschaft.
Alternativ können Sie ein vorhandenes Mitglied über das Papierkorb-Symbol löschen.
Mit dem Register Zugriffskontrolle der CRXDE Lite können Sie die Richtlinien für die Zugriffskontrolle definieren und die entsprechenden Berechtigungen zuweisen.
Wählen Sie beispielsweise auf der Registerkarte „Zugangssteuerung“ im unteren rechten Bereich für die Option Aktueller Pfad die gewünschte Ressource im linken Bereich aus:
Die Richtlinien sind wie folgt kategorisiert:
Anwendbare Zugriffskontrollen
Diese Richtlinien können angewendet werden.
Dies sind Richtlinien, die für die Erstellung einer lokalen Richtlinie zur Verfügung stehen. Nachdem Sie eine gültige Richtlinie ausgewählt und hinzugefügt haben, wird sie zu einer lokalen Richtlinie.
Lokale Zugriffskontrollen
Dies sind Richtlinien für Zugriffskontrollen, die Sie angewendet haben. Sie können sie dann aktualisieren, sortieren oder entfernen.
Eine lokale Richtlinie überschreibt jedwede Richtlinien, die vom übergeordneten Element übernommen werden.
Effektive Zugriffskontrolle
Dies sind die Richtlinien zur Zugriffskontrolle, die jetzt für alle Zugriffsanforderungen gelten. Sie zeigen die aggregierten Richtlinien an, die von den lokalen Richtlinien abgeleitet bzw. vom übergeordneten Element übernommenen werden.
Sie können Richtlinien für Folgendes auswählen:
Aktueller Pfad
Wie im Beispiel oben, wählen Sie eine Ressource im Repository aus. Die Richtlinien für diesen aktuellen Pfad werden angezeigt.
Repository
Wählt die Zugriffskontrolle auf Repository-Ebene aus. Beispiel: Wenn Sie die Berechtigung jcr:namespaceManagement
festlegen, die nur für das Repository und nicht für einen Knoten relevant ist.
Prinzipal
Ein Prinzipal, der im Repository registriert ist.
Sie können entweder den Prinzipal-Namen eingeben oder auf das Symbol rechts neben dem Feld klicken, um das Dialogfeld Prinzipal auswählen zu öffnen.
Dort können Sie nach einem Benutzer oder einer Gruppe suchen. Wählen Sie den gewünschten Prinzipal aus der angezeigten Liste aus und klicken Sie dann auf OK, um den Wert in das vorherige Dialogfeld zu übernehmen.
Zur Vereinfachung der Verwaltung empfehlen wir, dass Sie Gruppenkonten und nicht einzelnen Benutzerkonten Zugriffsrechte zuweisen.
Es ist einfacher, einige wenige Gruppen anstatt vieler Benutzerkonten zu verwalten.
Die folgenden Berechtigungen können beim Hinzufügen eines Zugangssteuerungseintrags ausgewählt werden (umfassende Details finden Sie in Sicherheits-API).
Berechtigungsname | Welche das Privileg kontrolliert... |
---|---|
jcr:read |
Rufen Sie eine Node ab und lesen Sie deren Eigenschaften und deren Werte. |
rep:write |
Dies ist ein Jackrabbit-spezifisches Aggregat-Privileg von jcr:write und jcr:nodeTypeManagement. |
jcr:all |
Dies ist eine Aggregat-Berechtigung, die alle anderen vordefinierten Berechtigungen enthält. |
Erweitert | |
crx:replicate |
Führen Sie die Replikation einer Node durch. |
jcr:addChildNodes |
Erstellen Sie untergeordnete Knoten einer Node. |
jcr:lifecycleManagement |
Führen Sie Lebenszyklusoperationen auf einem Knoten durch. |
jcr:lockManagement |
Sperren und Entsperren einer Node; Sperren aktualisieren. |
jcr:modifyAccessControl |
Ändern Sie die Zugriffskontrollen einer Node. |
jcr:modifyProperties |
Erstellen, ändern und entfernen Sie die Eigenschaften eines Knotens. |
jcr:namespaceManagement |
Registrieren, heben Sie die Registrierung auf und ändern Sie die Namensraum-Definitionen. |
jcr:nodeTypeDefinitionManagement |
Importieren Sie Knotentypdefinitionen in das Repository. |
jcr:nodeTypeManagement |
hinzufügen und entfernen Sie mixin-Knotentypen und ändern Sie den primären Knotentyp einer Node. Dies schließt auch alle Aufrufe der Node.addNode- und XML-Importmethoden ein, bei denen der Mixin-Typ oder primäre Typ des neuen Knotens explizit festgelegt ist. |
jcr:readAccessControl |
Lesen Sie die Richtlinie zur Zugriffskontrolle einer Node. |
jcr:removeChildNodes |
Entfernen Sie untergeordnete Knoten einer Node. |
jcr:removeNode |
Entfernen Sie eine Node. |
jcr:retentionManagement |
Führen Sie Speicherverwaltungsvorgänge auf einer Node durch. |
jcr:versionManagement |
Führen Sie Versionsverwaltungsvorgänge für einen Knoten durch. |
jcr:workspaceManagement |
Erstellen und Löschen von Arbeitsbereichen mit der JCR-API. |
jcr:write |
Dies ist eine Aggregat-Berechtigung, die Folgendes enthält: - jcr:modifyProperties - jcr:addChildNodes - jcr:removeNode - jcr:removeChildNodes |
rep:privilegeManagement |
Registrieren Sie neue Berechtigung. |
Sie können auch neue Berechtigungen registrieren:
Wählen Sie in der Symbolleiste Tools und dann Berechtigungen aus, um die aktuell registrierten Berechtigungen anzuzeigen.
Öffnen Sie mithilfe des Symbols Berechtigung registrieren (+) das entsprechende Dialogfeld und legen Sie eine neue Berechtigung fest:
Klicken Sie zum Speichern auf OK. Die Berechtigung steht jetzt zur Auswahl zur Verfügung.
Wählen Sie die Ressource aus und öffnen Sie die Registerkarte Zugriffssteuerung.
Um neue Richtlinien zur lokalen Zugriffssteuerung hinzuzufügen, klicken Sie auf das +-Symbol rechts neben der Liste Gültige Richtlinie für die Zugriffssteuerung:
Es wird ein neuer Eintrag unter Richtlinien zur lokalen Zugriffssteuerung angezeigt:
Klicken Sie auf das +-Symbol, um einen neuen Eintrag hinzuzufügen:
Derzeit ist es nur mithilfe einer Übergangslösung möglich, eine leere Zeichenfolge festzulegen.
Geben Sie einfach "" ein.
Definieren Sie Ihre Richtlinie zur Zugriffssteuerung und klicken Sie dann zum Speichern auf OK. Die neue Richtlinie:
CRX überprüft Ihre Auswahl. Bei einem gegebenen Prinzipal ist (maximal) 1 Ablehnungs- und 1 Zulassungseintrag in einem gegebenen Knoten vorhanden. Die Implementierung löscht immer redundante Einträge und stellt sicher, dass dieselbe Berechtigung nicht sowohl in den Zulassungs- als auch in den Ablehnungseinträgen aufgeführt wird.
Die Reihenfolge in der Liste zeigt die Reihenfolge an, in der die Richtlinien angewendet werden.
Wählen Sie in der Tabelle Richtlinien zur lokalen Zugriffssteuerung den gewünschten Eintrag aus und ziehen Sie ihn an die neue Position in der Tabelle.
Die Änderungen werden in den Tabellen Richtlinien zur lokalen Zugriffssteuerung und Gültige Richtlinien zur Zugriffssteuerung angezeigt.
Wählen Sie in der CRXDE Lite-Symbolleiste Tools und dann Zugriffssteuerung testen… aus.
Daraufhin wird ein neues Dialogfeld im Bereich rechts oben geöffnet. Wählen Sie den Pfad und/oder den Prinzipal aus, den Sie testen möchten.
Klicken Sie auf Testen, um die Ergebnisse für Ihre Auswahl zu sehen: