Über Zugriffssteuerungslisten (ACLs; Access Control Lists) werden in WebSphere Message Broker die Benutzer und Gruppen, die Objekte im Konfigurationsmanager und Message Brokers Toolkit bearbeiten können, festgelegt. Einem Benutzer bzw. einer Gruppe können vier verschiedene Zugriffsebenen zugeordnet werden: Vollständig, Anzeigen, Implementieren und Bearbeiten. Für die jeweiligen Objekttypen sind nicht alle Zugriffsebenen zulässig; in der nachfolgenden Tabelle werden die Berechtigungen, die den jeweiligen Objekttypen zugeordnet werden können, beschrieben. Zudem enthält die Tabelle eine Zusammenfassung der Aktionen, die der Benutzer bzw. die Gruppe ausführen können.
Um die Anzahl der Zugriffssteuerungseinträge, die von einem Brokeradministrator erstellt werden müssen, zu reduzieren, weisen die ACL-Berechtigungen ein hierarchisches Verhalten auf. Das Stammelement der Baumstruktur ist das ObjektConfigManagerProxy, dem drei untergeordnete Elemente zugeordnet sind: RootTopic, Subscriptions und PubSubTopology. Dem Objekt PubSubTopology sind null oder mehrere Broker untergeordnet, und jeder Broker verfügt über null oder mehrere untergeordnete Ausführungsgruppen. Wenn ein ACL-Eintrag zu einem bestimmten Objekt hinzugefügt wird, gilt diese Berechtigung für das Objekt und alle untergeordneten Objekte in der Hierarchie, es sei denn, die Berechtigung wird von einem anderen ACL-Eintrag außer Kraft gesetzt. Das folgende Diagramm stellt eine Beispielhierarchie dar:
Die folgenden Szenarios machen deutlich, wie das hierarchische Verhalten in der Praxis funktioniert.
Szenario 1
Dem BenutzerA sind keine Zugriffsteuerungseinträge zugeordnet. Deshalb kann BenutzerA keine Objekte in der Hierarchie bearbeiten oder in der Hierarchie definierte Objekte anzeigen.
Szenario 2
CMP Keine
RootTopic Keine
Subs Keine
Topology Anzeigen
Broker1 Anzeigen
Eg1A Implementieren
Eg1B Keine
Broker2 Keine
Eg2A Keine
Eg2B Keine
Hinweis: Da der Ausführungsgruppe ein Zugriffssteuerungseintrag zugeordnet wurde, wird ihr eine implizierte Berechtigung zum Anzeigen für den übergeordneten Broker und die Topologie erteilt, sonst würde sie in den Tools nicht angezeigt werden. Da es keine ACL-Einträge für diesen Benutzer für den Broker oder die Topologie gibt, kann keine Zugriffsberechtigung für den anderen Broker bzw. Ausführungsgruppen übernommen werden. In der Praxis bedeutet dies, dass BenutzerB zwar sehen kann, dass eine andere Ausführungsgruppe für diesen Broker definiert wurde, er kann jedoch keine Details (einschließlich des Namens) anzeigen.
Ebenso kann BenutzerB sehen, dass sich ein weiterer Broker in der Topologie befindet, es werden jedoch keine Details angezeigt. BenutzerB hat keinen Zugriff auf das Thema der höchsten Ebene oder auf die Subskriptionstabelle.
Szenario 3
CMP Anzeigen
RootTopic Anzeigen
Subs Anzeigen
Topology Anzeigen
Broker1 Vollständig
Eg1A Vollständig
Eg1B Vollständig
Broker2 Anzeigen
Eg2A Anzeigen
Eg2B Anzeigen
Szenario 4
CMP Vollständig
RootTopic Vollständig
Subs Vollständig
Topology Vollständig
Broker1 Anzeigen
Eg1A Anzeigen
Eg1B Anzeigen
Broker2 Vollständig
Eg2A Vollständig
Eg2B Vollständig
Hinweis: In diesem Beispiel hätte der Benutzer ohne den Eintrag für die Berechtigung zum Anzeigen für Broker1 vollständige Zugriffskontrolle. Die Einträge für die Berechtigung zum Anzeigen sind nützlich, da man über diese Einträge die Zugriffsberechtigungen für Benutzer, die normalerweise vollständige Zugriffskontrolle für ein bestimmtes Objekt haben, vorübergehend einschränken kann, um unbeabsichtigte Löschvorgänge oder Implementierungen zu vermeiden. Sie können die vollständige Zugriffskontrolle des Benutzers für ein Objekt durch Entfernen des Eintrags für die Berechtigung zum Anzeigen wiederherstellen, so dass der Benutzer die erforderlichen Operationen ausführen kann, und anschließend den Eintrag für die Anzeigeberechtigung wiederherstellen.
Um die Zugriffssteuerungseinträge für ein Objekt ändern zu können, muss der Benutzer über die Berechtigung zur vollständige Kontrolle für das Objekt oder eines der ihm übergeordneten Objekte in der Hierarchie verfügen. Dies bedeutet, dass bei der Berechtigung zum Ändern der ACLs nach dem oben beschriebenen Prinzip vorgegangen wird, mit der Ausnahme, dass Zugriffsberechtigungen für ACLs nicht durch Erteilen einer niedrigeren Berechtigung weiter unten in der Baumstruktur entfernt werden können; wäre dies nicht der Fall, könnte sich ein Benutzer selbst eine Anzeigeberechtigung erteilen und wäre dann nicht mehr in der Lage, diese zu entfernen.
ACL-Einträge können unter Verwendung der Java-Konfigurationsmanager-Proxy-API oder der Befehle mqsicreateaclentry, mqsideleteaclentry, und mqsilistaclentry bearbeitet werden.
Objekt | Zugriffsberechtigung | Berechtigung |
---|---|---|
Topologie | Vollständige Kontrolle |
|
Ansicht |
|
|
Broker | Vollständige Kontrolle |
|
Implementieren |
|
|
Ansicht |
|
|
Ausführungsgruppe | Vollständige Kontrolle |
|
Implementieren |
|
|
Ansicht |
|
|
Thema der höchsten Ebene | Vollständige Kontrolle |
|
Implementieren |
|
|
Bearbeiten |
|
|
Ansicht |
|
|
Subskription | Vollständige Kontrolle |
|
Ansicht |
|