Rollenbasierte Berechtigung
Berechtigungsinformationen werden verwendet, um zu ermitteln, ob ein Aufrufer über die notwendigen Berechtigungen zum Anfordern eines Services verfügt.
Die folgende Abbildung zeigt den Ablauf eines Berechtigungsprozesses.

Der Zugriff auf Webressourcen von einem Web-Client aus wird durch einen Web-Collaborator bearbeitet. Der von einem Java-Client (Enterprise-Bean oder Servlet) ausgehende Zugriff auf EJB-Ressourcen wird durch einen EJB-Collaborator bearbeitet. Der EJB-Collaborator und der Web-Collaborator extrahieren die Clientberechtigungsnachweise aus dem aktuellen ORB-Objekt. Die Berechtigungsnachweise des Clients werden während des Authentifizierungsprozesses als empfangene Berechtigungsnachweise im aktuellen ORB-Objekt festgelegt. Die Ressource und die empfangenen Berechtigungsnachweise werden dem Zugriffsmanager WSAccessManager zur Prüfung vorgelegt, ob dem Client der Zugriff auf die angeforderte Ressource erlaubt ist.
- Das Ressourcenberechtigungsmodul hilft bei der Ermittlung der erforderlichen Rollen einer gegebenen Ressource. Es verwendet eine Tabelle für die Zuordnung von Ressourcen zu Rollen, die von der Sicherheitslaufzeit während des Anwendungsstarts aufgebaut wird. Die Tabelle für die Zuordnung von Ressourcen zu Rollen wird durch Einlesen des Implementierungsdeskriptors der Enterprise-Beans oder Webmodule (ejb-jar.xml oder web.xml) durch die Sicherheitslaufzeitumgebung erstellt.
- Das Modul für die Berechtigungstabelle ermittelt anhand einer Tabelle, die
Rollen zu Benutzern oder Gruppen zuordnet, ob einem Client einer der geforderten Rollen
zugewiesen werden kann. Die Tabelle für die Zuordnung von Rollen zu Benutzern oder Gruppen (die auch als Berechtigungstabelle bezeichnet wird)
wird während des Anwendungsstarts von der Sicherheitslaufzeit erstellt.
Die Berechtigungstabelle wird durch Einlesen der Datei mit den Anwendungsbindungen, ibm-application-bnd.xmi bzw. ibm-application-bnd.xml, durch die Sicherheitslaufzeit erstellt.
Die Berechtigungstabelle kann auch während der Autorisierung beim Zugriff auf die EJBROLE-Profile über Security Access Facility (z. B. RACF) erstellt werden.
Unterstützte Konfigurationen: Bei IBM® Erweiterungs- und Bindungsdateien weicht der Name der XMI- oder XML-Datei ab, je nachdem, ob Sie eine Java™ EE-Anwendung bzw. ein Java EE-Modul vor oder nach Version 5 verwenden. Eine IBM Erweiterungs- bzw. Bindungsdatei heißt "ibm-*-ext.xmi" bzw. "ibm-*-bnd.xmi". Das Platzhalterzeichen "*" steht für den Typ der Erweiterungs- oder Bindungsdatei, z. B. "app", "application", "ejb-jar" oder "web". Es gelten die folgenden Bedingungen:
Ein Modul von Java EE Version 5 oder einer höheren Version kann jedoch in einer Anwendung, die Dateien einer älteren Java EE-Version als Version 5 enthält, koexistieren.
Die Dateien ibm-webservices-ext.xmi, ibm-webservices-bnd.xmi, ibm-webservicesclient-bnd.xmi, ibm-webservicesclient-ext.xmi und ibm-portlet-ext.xmi können die Dateierweiterung ".xmi" weiterhin verwenden.
sptcfg
Berechtigungsinformationen werden verwendet, um zu ermitteln, ob ein Aufrufer über die notwendige Berechtigung zum Anfordern eines Services verfügt. Sie können Berechtigungsinformationen auf viele Arten speichern. Sie können beispielsweise mit jeder Ressource eine Zugriffssteuerungsliste (ACL, Access Control List) speichern, die eine Liste der Benutzer und Benutzerberechtigungen enthält. Eine andere Möglichkeit, die Informationen zu speichern, besteht darin, jedem Benutzer eine Liste mit Ressourcen und den zugehörigen Berechtigungen zuzuordnen. Diese Liste wird als Funktionsliste bezeichnet.
WebSphere Application Server verwendet das J2EE-Berechtigungsmodell (Java 2 Platform, Enterprise Edition). In diesem Modell werden die Berechtigungsinformationen folgendermaßen organisiert:
Beim Assemblieren einer Anwendung wird die Berechtigung zum Aufrufen von Methoden für einen oder mehrere Rollen gewährt. Eine Rolle ist eine Sammlung von Berechtigungen; bei einer Anwendung für das Bankwesen können Rollen Schalterbeamte, Vorgesetzte, Sachbearbeiter und andere branchenbezogene Positionen umfassen. Die Rolle des Schalterbeamten ist mit Berechtigungen zum Ausführen von Methoden verbunden, die mit der Verwaltung der Gelder auf einem Konto zusammenhängen, also beispielsweise die Methoden "withdraw" und "deposit". Der Rolle des Schalterbeamten wird nicht die Berechtigung gewährt, Konten zu schließen; diese Berechtigung fällt der Rolle des Vorgesetzten zu. Der Anwendungsassemblierer definiert eine Liste der Methodenberechtigungen für jede Rolle. Diese Liste wird im Implementierungsdeskriptor der Anwendung gespeichert. Mit Java EE7 und höher wird der spezielle Rollenname "**" eingeführt. Diese Rolle gibt an, dass der Zugriff nach der Authentifizierung eines Benutzers erteilt wird.
Drei Sondersubjekte sind im J2EE-Modell nicht definiert: AllAuthenticatedUsers, AllAuthenticatedInTrustedRealms und Everyone. Ein Sondersubjekt ist eine produktdefinierte Entität, die außerhalb der Benutzerregistry definiert wird. Die Entität wird verwendet, um eine Klasse von Benutzern oder Gruppen in der Registry generisch darzustellen.
- Das Subjekt AllAuthenticatedUsers erlaubt allen authentifizierten Benutzern, auf geschützte Methoden zuzugreifen. Solange der Benutzer erfolgreich authentifiziert wird, wird diesem Benutzer der Zugriff auf die geschützte Ressource gewährt.
- Das Subjekt AllAuthenticatedInTrustedRealms ermöglicht allen fremden Benutzern (d. h. den Benutzern, die an andere Realms gebunden sind) den Zugriff auf geschützte Methoden. Solange der Benutzer erfolgreich authentifiziert wird, wird diesem Benutzer der Zugriff auf die geschützte Ressource gewährt.
- Das Subjekt "Everyone" gewährt unbeschränkten Zugriff auf eine geschützte Ressource. Benutzer müssen nicht authentifiziert werden, um Zugriff zu erhalten, weil dieses Sondersubjekt den Zugriff auf geschützte Methoden zulässt, als wären die Ressourcen ungeschützt.

Bei der Implementierung einer Anwendung werden reale Benutzer oder Benutzergruppen den Rollen zugeordnet. Wenn ein Benutzer einer Rolle zugeordnet wird, erhält dieser Benutzer alle Methodenberechtigungen, die für diese Rolle gewährt werden.
Je nach Umgebungen können gewisse Einschränkungen bestehen.
Wenn Sie beispielsweise SAF verwenden, wird für die Prüfung immer die SAF-Datenbank verwendet. Wird
vor einer Zugriffsprüfung für eine bestimmte Rolle keine Authentifizierung durchgeführt, dann wird die SAF-Standardidentität für die Prüfung verwendet. Sofern keine gültige Standardbenutzer-ID in der Eigenschaft
com.ibm.SAF.authorization definiert ist, wird der Zugriff nicht erteilt.
Der
Implementierer der Anwendung muss die einzelnen Methoden nicht kennen. Durch das Zuordnen von Rollen zu Methoden
vereinfacht die Anwendungsassemblierung die Arbeit des Anwendungsimplementierers.
Anstatt mit einer Sammlung von Methoden
zu arbeiten, arbeitet der Implementierer mit Rollen, die semantische Gruppierungen der Methoden darstellen.
Der Administrator ist für die Verwaltung dieser Rollen zuständig.
Benutzer können mehr als einer Rolle zugeordnet werden; die Berechtigungen, die dem Benutzer damit gewährt werden, sind die Gesamtheit der Berechtigungen, die für jede Rolle gewährt werden. Darüber hinaus können, sofern das Authentifizierungsverfahren das Gruppieren von Benutzern unterstützt, diese Gruppen Rollen zugeordnet werden. Das Zuordnen einer Gruppe zu einer Rolle hat den gleichen Effekt wie das Zuordnen einzelner Benutzer zu der Rolle.
![[AIX Solaris HP-UX Linux Windows]](../images/dist.gif)
![[IBM i]](../images/iseries.gif)
- Hiermit wird die Leistung während der Berechtigungsprüfung verbessert. Normalerweise sind weit weniger Gruppen als Benutzer vorhanden.
- Die Flexibilität ist größer, wenn die Gruppenmitgliedschaft für die Steuerung des Ressourcenzugriffs herangezogen wird.
- Das Hinzufügen und Entfernen von Benutzern in Gruppen außerhalb der Produktumgebung wird unterstützt. Diese Aktion ist dem Hinzufügen und Entfernen von Benutzern in WAS-Rollen vorzuziehen. Stoppen Sie die Unternehmensanwendung und starten Sie sie erneut, damit diese Änderungen in Kraft treten. Diese Aktion kann in einer Produktionsumgebung sehr störend sein.
Eine optimale Methode während der Implementierung besteht darin, Gruppen anstelle von einzelnen Benutzern
zu Rollen zuzuordnen. Wenn Sie für die Berechtigung Bindungen anstelle von
SAF EJBROLES verwenden und den Bindungswert ändern müssen, dann müssen Sie den Server erneut
starten, damit die neuen Werte übernommen werden. Wenn Sie SAF EJBROLES verwenden, erkennt der Anwendungsserver die Änderungen automatisch.
Nähere Informationen finden Sie im Artikel System
Authorization Facility für rollenbasierte Berechtigung.
Zur Laufzeit prüft WebSphere Application Server eingehende Anforderungen auf Basis der Identifikationsinformationen des Benutzers und der Zuordnung des Benutzers zu Rollen. Wenn der Benutzer zu einer Rolle gehört, die über die Berechtigung zum Ausführen einer Methode verfügt, wird die Anforderung als berechtigt betrachtet. Gehört der Benutzer nicht zu einer Rolle mit dieser Berechtigung, wird die Anforderung abgewiesen.
- getCallerPrincipal: Diese Methode ruft die Identifikationsinformationen des Benutzers ab.
- isCallerInRole: Diese Methode prüft die Identifikationsinformationen des Benutzers gegenüber einer speziellen Rolle.
- getRemoteUser
- isUserInRole
- getUserPrincipal
Diese Methoden entsprechen in ihrem Zweck den Enterprise-Bean-Methoden.
Weitere Informationen zum Berechtigungsmodell der J2EE-Sicherheit finden Sie auf der Website http://java.sun.com.