Benennungsrollen
Das rollenbasierte J2EE-Berechtigungsverfahren (Java™ 2 Platform, Enterprise Edition) wurde erweitert, um den Service CosNaming zu schützen.
Die CosNaming-Sicherheitskomponente ermöglicht eine bessere Unterteilung der Sicherheitssteuerung von CosNaming-Funktionen. CosNaming-Funktionen sind auf CosNaming-Servern, wie z. B. dem WebSphere Application Server, verfügbar. Sie beeinflussen den Inhalt des Namespace. Im Allgemeinen gibt es zwei Verfahren, mit denen Clientprogramme zu CosNaming-Aufrufen führen. Beim ersten Verfahren werden die JNDI-Methoden (Java Naming and Directory Interface) verwendet. Die zweite Möglichkeit ist, wenn CORBA-Clients direkt CosNaming-Methoden aufrufen.
- CosNamingRead. Benutzer, die der Rolle "CosNamingRead" zugeordnet sind, können den
Namespace abfragen, z. B. mit der JNDI-Methode "lookup".
Das Sondersubjekt "Everyone" ist die Standardrichtlinie für diese Rolle.
Tabelle 1. Pakete und Schnittstellenmethoden für die Rolle "CosNamingRead". In der folgenden Tabelle sind die Pakete und Schnittstellenmethoden für die Rolle "CosNamingRead" aufgelistet: Paket Schnittstellenmethode javax.naming - Context.list
- Context.listBindings
- Context.lookup
- NamingEnumeration.hasMore
- NamingEnumeration.next
org.omg.CosNaming - NamingContext.list
- NamingContext.resolve
- BindingIterator.next_one
- BindingIterator.next_n
- BindingIterator.destroy
- CosNamingWrite. Benutzer, die der Rolle "CosNamingWrite" zugeordnet sind, können
Schreiboperationen wie JNDI bind, rebind oder unbind und CosNamingRead-Operationen ausführen.
Standardmäßig werden Subjekte dieser Rolle nicht zugeordnet.
Tabelle 2. Pakete und Schnittstellenmethoden für die Rolle "CosNamingWrite". In der folgenden Tabelle sind die Pakete und Schnittstellenmethoden für die Rolle "CosNamingWrite" aufgelistet: Paket Schnittstellenmethode javax.naming - Context.bind
- Context.rebind
- Context.rename
- Context.unbind
org.omg.CosNaming - NamingContext.bind
- NamingContext.bind_context
- NamingContext.rebind
- NamingContext.rebind_context
- NamingContext.unbind
- CosNamingCreate. Benutzer, die der Rolle "CosNamingCreate" zugeordnet sind,
können mit JNDI-Operationen des Typs "createSubcontext" und Operationen des Typs "CosNamingWrite"
neue Objekte im Namespace erstellen.
Standardmäßig werden Subjekte dieser Rolle nicht zugeordnet.
Tabelle 3. Pakete und Schnittstellenmethoden für die Rolle "CosNamingCreate". In der folgenden Tabelle sind die Pakete und Schnittstellenmethoden für die Rolle "CosNamingCreate" aufgelistet: Paket Schnittstellenmethode javax.naming Context.createSubcontext org.omg.CosNaming NamingContext.bind_new_context - CosNamingDelete. Benutzer, die der Rolle "CosNamingDelete" zugeordnet sind,
können Objekte im Namespace löschen, z. B. mit der JNDI-Methode
"destroySubcontext" und CosNamingCreate-Operationen. Standardmäßig werden Subjekte dieser Rolle nicht zugeordnet.
Tabelle 4. Pakete und Schnittstellenmethoden für die Rolle "CosNamingDelete". In der folgenden Tabelle sind die Pakete und Schnittstellenmethoden für die Rolle "CosNamingDelete" aufgelistet: Paket Schnittstellenmethode javax.naming Context.destroySubcontext org.omg.CosNaming NamingContext.destroy
- javax.naming
- Dieses Paket erzeugt die Ausnahme javax.naming.NoPermissionException, die NO_PERMISSION aus dem CosNaming-Methodenaufruf der Ausnahme NoPermissionException zuordnet.
- org.omg.CosNaming
- Dieses Paket erzeugt die Ausnahme org.omg.CORBA.NO_PERMISSION.
Das Hinzufügen oder Entfernen von Benutzern, Gruppen und der Sondersubjekte "AllAuthenticated" und "Everybody" für die Benennungsrollen ist über die Administrationskonsole von WebSphere Application Server jederzeit möglich. Sie müssen den Server jedoch erneut starten, damit die Änderungen wirksam werden. Es wird empfohlen, lieber Gruppen oder Sondersubjekte statt einzelnen Benutzern den Benennungsrollen zuzuordnen, da dies auf längere Sicht eine flexiblere und einfachere Verwaltung ermöglicht. Durch das Zuordnen einer Gruppe zu einer Benennungsrolle erfolgt das Hinzufügen und Entfernen von einzelnen Benutzern (in der Gruppe) außerhalb von WebSphere Application Server und erfordert keinen Serverneustart.
Wenn ein Benutzer einer bestimmten Benennungsrolle zugeordnet ist und dieser Benutzer Member einer Gruppe ist, die einer anderen Benennungsrolle zugeordnet ist, wird dem Benutzer der Zugriff erteilt, der ihm die meisten Rechte einräumt. Angenommen, der Benutzer MeinBenutzer ist der Rolle CosNamingRead zugeordnet und die Gruppe MeineGruppe der Rolle CosNamingCreate. Wenn der Benutzer MeinBenutzer Member der Gruppe MeineGruppe ist, wird der Benutzer MeinBenutzer der Rolle e CosNamingCreate zugeordnet, weil der Benutzer Member der Gruppe MeineGruppe ist. Ist der Benutzer MeinBenutzer kein Member der Gruppe MeineGruppe, wird er der Rolle CosNamingRead zugeordnet.
Die CosNaming-Berechtigungsrichtlinie wird nur bei Aktivierung der Verwaltungssicherheit angewendet. Wenn die Verwaltungssicherheit aktiviert ist, führen Versuche, CosNaming-Operationen ohne die erforderlichen Rolle auszuführen, zu einer Ausnahme des Typs org.omg.CORBA.NO_PERMISSION vom CosNaming-Server.
In WebSphere Application Server ist jeder CosNaming-Funktion nur eine Rolle zugeordnet. Deshalb können Benutzer, die der Rolle "CosNamingCreate" zugeordnet sind, den Namespace nur abfragen, wenn sie auch der Rolle "CosNamingRead" zugeordnet sind. Und in den meisten Fällen benötigt ein Ersteller drei Rollen: CosNamingRead, CosNamingWrite und CosNamingCreate. Die Rollen "CosNamingRead" und "CosNamingWrite" im Beispiel für einen Ersteller sind in der Rolle "CosNamingCreate" mit enthalten. Meistens brauchen Administratoren von WebSphere Application Server die Rollenzuordnungen der Benutzer und Gruppen nicht zu ändern, wenn sie von einer früheren auf diese Version wechseln.
Es ist zwar möglich, den Zugriff auf den Namespace durch Änderung der Standardwertegruppe stark einzuschränken, dies kann jedoch zur Laufzeit zu unerwarteten Ausnahmen des Typs org.omg.CORBA.NO_PERMISSION führen. Normalerweise greifen J2EE-Anwendungen auf den Namespace zu. Sie verwenden dabei die Identität des Benutzers, der beim Zugriff auf die J2EE-Anwendung in WebSphere Application Server authentifiziert wurde. Wenn der Lieferant der J2EE-Anwendung die erwarteten Benennungsrollen nicht eindeutig mitteilt, sollte die Standardberechtigungsrichtlinie für Benennung nur mit Vorsicht geändert werden.