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 über einen Web-Client wird von einem Web-Collaborator gehandhabt. Der Zugriff auf EJB-Ressourcen (Enterprise JavaBeans) über einen einen Java-Client (eine Enterprise-Bean oder ein Servlet) wird von einem EJB-Collaborator gehandhabt. Der EJB-Collaborator und der Web-Collaborator extrahiert die Berechtigungsnachweise des Clients aus dem aktuellen ORB-Objekt (Object Request Broker). Die Berechtigungsnachweise des Clients werden während des Authentifizierungsprozesses als empfangene Berechtigungsnachweise im aktuellen ORB-Objekt definiert. Die Ressource und die empfangenen Berechtigungsnachweise werden dem WSAccessManager-Zugriffsmanager präsentiert, um zu prüfen, ob dem Client der Zugriff auf die angeforderte Ressource erlaubt wird.

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 Access-Manager-Modul enthält zwei Hauptmodule:
  • 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.

    [z/OS]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 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:
    • Für eine Anwendung oder ein Modul, die bzw. das Java EE vor Version 5 verwendet, muss die Dateierweiterung ".xmi" sein.
    • Für eine Anwendung oder ein Modul, die bzw. das Java EE ab Version 5 verwendet, muss die Dateierweiterung ".xml" sein. Wenn Dateien mit der Erweiterung ".xmi" in der Anwendung oder im Modul enthalten sind, werden diese vom Produkt ignoriert.

    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.

Fehler vermeiden Fehler vermeiden: Wenn WebSphere Application Server für SAF konfiguriert ist, werden die Sondersubjekte ignoriert. Diese Funktionen sind in SAF verfügbar. Die Funktionen werden durch die Definition der nicht authentifizierten Benutzer-ID RACF mit der Eigenschaft RESTRICTED simuliert. Wenn ein EJBROLE-Profil mit der UACC-Einstellung (Universal Access) READ erstellt wird, erhalten alle authentifizierten Benutzer mit Ausnahme der nicht authentifizierten Benutzer-ID Zugriff.gotcha

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.

[z/OS]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.

[AIX Solaris HP-UX Linux Windows][IBM i]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.

[z/OS]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][IBM i]Eine optimale Methode während der Implementierung besteht darin, Gruppen anstelle von einzelnen Benutzern zu Rollen zuzuordnen, und zwar aus folgenden Gründen:
  • 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.

[z/OS]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.

Die J2EE-Vorgehensweise geht deklarativ an Berechtigungen heran, sie erkennt jedoch auch an, dass nicht alle Situationen deklarativ behandelt werden können. Für solche Fälle stehen Methoden bereit, um Benutzer- und Rolleninformationen programmgesteuert zu ermitteln. Bei Enterprise-Beans werden die folgenden beiden Methoden von WebSphere Application Server unterstützt:
  • getCallerPrincipal: Diese Methode ruft die Identifikationsinformationen des Benutzers ab.
  • isCallerInRole: Diese Methode prüft die Identifikationsinformationen des Benutzers gegenüber einer speziellen Rolle.
Bei Servlets unterstützt IBM WebSphere Application Server die folgenden Methoden:
  • 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.


Symbol, das den Typ des Artikels anzeigt. Konzeptartikel



Symbol für Zeitmarke Letzte Aktualisierung: 25.05.2016
http://www14.software.ibm.com/webapp/wsbroker/redirect?version=cord&product=was-nd-mp&topic=csec_rolebased
Dateiname:csec_rolebased.html