![[z/OS]](../images/ngzos.gif)
System Authorization Facility (SAF) für rollenbasierte Berechtigung
Es gibt drei Optionen für die Zuordnung von Rollen: (1) Berechtigung von WebSphere Application Server. Hier erfolgt die Berechtigungsverwaltung über die WebSphere-Administration in der Anzeige "Zuordnung von Sicherheitsrollen zu Benutzern/Gruppen" in der Administrationskonsole. (2) System Authorization Facility (SAF) für rollenbasierte Berechtigung (nur gültig für WebSphere Authorization Facility for z/OS). Hier wird die SAF-Berechtigung für J2EE-Rollen (Java 2 Platform Enterprise Edition) verwendet. (3) Externer Berechtigungsprovider mit JACC-Plug-in-Schnittstellen. Wenn WebSphere Application Server für die Verwendung der SAF-Berechtigung konfiguriert ist, wird die Berechtigungsverwaltung mithilfe der SAF-Verwaltungsfunktionen ausgeführt, und die Verwaltung der Benutzer oder Gruppen als J2EE-Rollen in der WebSphere-Verwaltung wird ignoriert. Hier wird die SAF-Klasse EJBROLE verwendet (z. B. Verwendung des RACF-EJBROLE-Profils), um den Clientzugriff auf J2EE-Rollen (Java™ 2 Platform, Enterprise Edition) in EJB- und Webanwendungen, einschließlich der Administrationskonsolanwendung von WebSphere Application Server, zu steuern.
- Die Auswahl der SAF-Berechtigung in der Administrationskonsole setzt alle anderen Berechtigungsoptionen (z. B. Berechtigung über Tivoli Access Manager) außer Kraft. Weitere Informationen hierzu finden Sie im Artikel Übersicht über die Steuerelemente.
- Wenn die SAF-Berechtigung aktiviert ist, wird die Berechtigung auf jeder Stufe vom Sicherheitsmanager des Betriebssystems (RACF oder einem entsprechenden Produkt) durchgeführt. Deshalb ist es wichtig, dass Benutzer mit der Benutzer-ID eines Sicherheitsmanagers (RACF) authentifiziert werden. Nähere Informationen finden Sie im Artikel Hinweise zu SAF für die Betriebssystem- und Anwendungsebenen.
- Wenn die SAF-Berechtigung während der Systemanpassung ausgewählt wird, werden EJBROLE-Profile für alle Verwaltungsrollen von den RACF-Jobs definiert, die mit den Anpassungsdialogen generiert werden, und die SAF-Berechtigung kann als Berechtigungsverfahren für alle Benutzerregistrys verwendet werden. Nähere Informationen finden Sie im Artikel Zugriff auf die Konsole bei der Verwendung einer LocalOS-Registry steuern.
- Bei der Konfiguration der SAF-Berechtigung wird die Eigenschaft com.ibm.security.SAF.authorization auf true gesetzt, und die SAF-EJBROLE-Profile werden verwendet, um den Zugriff auf Verwaltungsrollen zu steuern. Weitere Informationen dazu, wie die Berechtigung für den Zugriff auf Verwaltungsrollen festgelegt wird, finden Sie im Artikel Zugriff auf Verwaltungsrollen berechtigen.
- Wenn die SAF-Berechtigung aktiviert ist, werden alle Werte für Konsolbenutzer und Konsolgruppen ignoriert. Die Funktionsanzeige "Sicherheitsrollen Benutzern oder Gruppen zuordnen" in der Administrationskonsole wird ignoriert. Nähere Informationen finden Sie im Artikel Verwaltungsrollen und Berechtigung für den Namensservice.
- Die Sondersubjekte "Jeder" und "Alle authentifizierten" werden ignoriert, weil sie in RACF verwaltet werden. Weitere Informationen finden Sie in den Artikeln Hinweise zu SAF für die Betriebssystem- und Anwendungsebenen und Zuordnung von Sicherheitsrollen zu Benutzern/Gruppen.
- Wenn die SAF-Berechtigung aktiviert ist, werden die SAF-EJBROLE-Profile verwendet, um den Zugriff auf CosNaming-Funktionen zu steuern. Während der Konfiguration der Sicherheitsdomäne im Anpassungsdialog werden die CosNaming-Rollen von Anpassungsjobs definiert. Weitere Informationen zu CosNaming-Funktionen und zur SAF-Berechtigung finden Sie in den Artikeln Spezielle Hinweise zur Steuerung des Zugriffs auf Benennungsrollen mit SAF-Autorisierung und Verwaltungsrollen und Berechtigung für den Namensservice.
- Wenn die SAF-Berechtigung aktiviert ist, werden SAF-EJBROLE-Profile verwendet, um J2EE-Rollen zu berechtigen. Für nicht lokale Betriebssystemregistrys muss eine Idnentitätszuordnungsfunktion verfügbar werden, um Identitäten von WebSphere Application Server SAF-Identitäten zuzuordnen. Weitere Informationen hierzu enthält der Artikel Zugriff auf die Konsole bei der Verwendung einer LocalOS-Registry steuern.
- Die SAF-Berechtigung für J2EE-Rollen ist eine Aufgabe, die unabhängig vom Prozess der Anwendungsimplementierung verläuft. Nähere Informationen finden Sie im Artikel Benutzer und Gruppen Rollen zuordnen.
- Die Klasse EJBROLE muss in der RACLIST aufgeführt sein. Wenn die Klasse EJBROLE nicht in der RACLIST aufgeführt ist, müssen Sie den Anwendungsserver erneut starten, damit Änderungen, die an Profilen in der Klasse EJBROLE vorgenommen wurden, wirksam werden.
- Die Spezifikation Servlet 3.1 umfasst eine neue Definition des Rollennamens **, der allen authentifizierten Benutzern Zugriff erteilt. Standardmäßig wird die Berechtigungsentscheidung von SAF getroffen.
- Die angepasste Eigenschaft
com.ibm.websphere.security.delegateStarStarRoleAuthorization definiert, ob der Sicherheitscode
allen authentifizierten Benutzern den Zugriff erteilt, wenn als Rollenname
** festgelegt ist.
- true - Der Sicherheitscode erteilt den Zugriff ohne vorherige Interaktion mit der Plug-in-Berechtigungstabelle.
- false - Der Sicherheitscode delegiert die Entscheidung an die Plug-in--Berechtigungstabelle. Dies ist der Standardwert.

Wenn die SAF-Berechtigung aktiviert ist, werden SAF-EJBROLE-Profile verwendet, um Java-EE-Rollen zu berechtigen. Für nicht lokale Betriebssystemregistrys muss eine Idnentitätszuordnungsfunktion verfügbar werden, um Identitäten von WebSphere Application Server SAF-Identitäten zuzuordnen.
Informationen zum Aktivieren der SAF-Berechtigung finden Sie im Artikel z/OS-SAF-Berechtigung.
EJBROLES werden im Rahmen der Anwendungsimplementierung definiert. Wenn die Benutzer-ID mindestens Lesezugriff auf das definierte EJBROLE-Profil hat, das der von der Anwendung definierten Java-EE-Rolle entspricht, wird die Benutzer-ID als der Rolle zugeordnet betrachtet. (Lassen Sie sich nicht vom Namen EJBROLE irritieren. Er wird für Java-EE-Rollen in Enterprise-Beans und in Webanwendungen verwendet.)
Wenn ein Anwendungsimplementierer im Implementierungsdeskriptor einer Komponente eine Rolle angibt, muss diese Angabe mit dem Namen eines EJBROLE-Profils übereinstimmen. Ein Sicherheitsadministrator definiert EJBROLE-Profile und berechtigt SAF-Benutzer oder -Gruppen für diese Profile. Ein Benutzer kann einer Rolle zugeordnet werden, wenn er Lesezugriff auf das EJBROLE-Profil hat oder zu einer SAF-Gruppe gehört, die Lesezugriff hat.
Bei Auswahl der SAF-Berechtigung wirkt sich die Angabe eines SAF-Profilpräfixes (früher als z/OS-Sicherheitsdomäne bezeichnet) auf die EJBROLE-Profile aus, die von Systemressourcen von WebSphere Application Server for z/OS verwendet werden. Wenn ein SAF-Präfix definiert ist, wird der Wert dieser Eigenschaft den EJBROLE-Profilen der Java-EE-Anwendung für die Laufzeit von WebSphere Application Server for z/OS als Präfix vorangestellt. Sie können somit dieselbe Anwendung in verschiedenen Zellen desselben Sysplex implementieren, bei Bedarf jedoch verschiedene Zuordnungen von Benutzern zu Rollen verwenden.
Beispiel: Ihre Anwendung hat zwei Java-EE-Rollennamen: juniorTellers und seniorTellers. Die Namen dieser Rollen enthalten sowohl Kleinbuchstaben als auch Großbuchstaben. In Ihrer SAF-Registry gibt es die MVS-Gruppen JTELLER und STELLER sowie die MVS-Benutzer-ID BANKADM. Die Gruppe JTELLER benötigt Zugriff auf die Rolle "juniorTellers" und die Gruppe STELLER Zugriff auf die Rolle "seniorTellers". Für den Zugriff auf beide Rollen ist die Benutzer-ID BANKADM erforderlich.
Es gibt zwei Zellen, die beide für die Verwendung eines SAF-Profilpräfixes definiert sind. Die Präfixe lauten PRODCELL bzw. TESTCELL. Die Benutzer-ID TEST1 sollte Zugriff auf beide Rollen haben, jedoch nur in der Testumgebung TESTCELL.
Wenn Sie eine Anwendung in beiden Zellen implementieren möchten, müssen Sie mit RACF (oder einem äquivalenten Sicherheitssubsystem) wie folgt unterschiedliche Profile definieren.
/* Die Klasse EJBROLE muss in den Anpassungsdialogen aktiviert worden sein. */ SETROPTS CLASSACT(EJBROLE) /* Definieren Sie zuerst die Rollen in RACF */ RDEFINE EJBROLE PRODCELL.juniorTellers UACC(NONE) RDEFINE EJBROLE PRODCELL.seniorTellers UACC(NONE) RDEFINE EJBROLE TESTCELL.juniorTellers UACC(NONE) RDEFINE EJBROLE TESTCELL.seniorTellers UACC(NONE) /* Berechtigen Sie die entsprechenden Benutzer und Gruppen für die verschiedenen Rollen. */ PERMIT PRODCELL.juniorTellers CLASS(EJBROLE) ID(JTELLER BANKADM) ACCESS(READ) PERMIT PRODCELL.seniorTellers CLASS(EJBROLE) ID(STELLER BANKADM) ACCESS(READ) PERMIT TESTCELL.juniorTellers CLASS(EJBROLE) ID(TEST1) ACCESS(READ) PERMIT TESTCELL.seniorTellers CLASS(EJBROLE) ID(TEST1) ACCESS(READ) /* Aktualisieren Sie die Klasse EJBROLE in RACF * SETROPTS RACLIST(EJBROLE) REFRESH"
Gruppierung EJBROLES (GEJBROLE)
Die SAF-Schnittstelle unterstützt für die Klasse EJBROLE auch eine Gruppierungsklasse. Diese Gruppierungsklasse hat den Namen GEJBROLE. Sie ist besonders hilfreich, wenn Sie Benutzern oder Gruppen den Zugriff auf verschiedene Rollen gewähren müssen.
- Sie können die Implementierungsdeskriptoren der Anwendung an die im Unternehmen bereits definierten Rollen, z. B. Manager, anpassen. Dies ist jedoch zeitraubend und birgt ein hohes Fehlerrisiko. Dies gilt um so mehr, als der Implementierungsdeskriptor jedes Mal neu angepasst werden muss, wenn die Anwendung geändert oder erneut installiert wird.
- Sie können die EJBROLE-Profile für jede Rolle definieren, die für die Anwendung erforderlich ist. Erteilen Sie anschließend Benutzern und Gruppen Zugriff auf diese Rollen. Dieser Prozess kann für den Administrator sehr zeitraubend sein, weil dieselben Benutzer und Gruppen unter Umständen Berechtigungen für mehrere unterschiedliche Profile mit ähnlicher Bedeutung haben.
- Sie können die Gruppierungsklasse verwenden, um die meisten Risiken der beiden anderen Ansätze zu vermeiden. Auch hier müssen Sie die EJBROLE-Profile für jede Rolle definieren, die für die Anwendung erforderlich ist. Anstatt nun aber alle Benutzer und Gruppen für die neuen Profile zu berechtigen, erstellen Sie in der Gruppierungsklasse ein Profil, z. B. Supervisor, und fügen alle neuen EJBROLE-Profile zu diesem hinzu. Sie können alle Benutzer und Gruppen, die auf diese Rollen zugreifen müssen, z. B. über das Profil Supervisor, auf einmal berechtigen. Sie können den Verwaltungsaufwand noch weiter reduzieren, indem Sie das vorhandene EJBROLE-Profil (Manager) zum Gruppierungsklassenprofil (Supervisor) hinzufügen.
- Planen Sie in der RACF-Klasse GEJBROLES Profile für die Organisationsrollen.
- Erstellen Sie die Zugriffsliste, indem Sie Benutzergruppen für die GEJBROLE-Profile berechtigen und dann Rollen zu diesen Profilen hinzufügen.
- Ein GEJBROLE muss nicht mehr als ein EJBROLE enthalten.
- Wenn Sie Benutzer für Rollen berechtigen, verwenden Sie keine Mischung aus EJBROLE und GEJBROLE.
- Berechtigen Sie Benutzer nach Möglichkeit nur für GEJBROLE-Profile.
- Geben Sie GEJBROLE generell den Vorzug vor EJBROLE.