
Mit WZSSAD auf z/OS-Sicherheitsressourcen zugreifen
WZSSAD (WLP z/OS System Security Access Domain) (WZSSAD) bezeichnet die Berechtigungen, die dem Liberty-Server erteilt werden. Diese Berechtigungen steuern, welche SAF-Anwendungsdomänen (System Authorization Facility) und -Ressourcenprofile der Server für die Authentifizierung und Berechtigung von Benutzern abfragen darf.
Wenn Sie beispielsweise zwei Liberty-Serverinstanzen konfigurieren möchten, eine für Produktions- und eine für Testzwecke, und Sie unterschiedliche Rollenzugriffsberechtigungen für die Instanzen verwenden möchten, können Sie zwei unterschiedliche Zugriffsdomänen für die Systemsicherheit (System Security Access Domain) konfigurieren.
Der Liberty-Server ist ein nicht autorisiertes Programm, das von Benutzern mit und ohne Administratorrechte konfiguriert werden kann, daher muss im Interesse der Systemsicherheit und Systemintegrität sichergestellt werden, dass ein Benutzer den Server nicht nutzt, um sicherheitsrelevante Operationen auszuführen, für die er nicht explizit berechtigt ist.
- Benutzer authentifizieren
- Subjekt für Java EE-Rolle berechtigen
- Subjekt für andere SAF-Ressourcen berechtigen
Benutzer authentifizieren
Der Server authentifiziert Benutzer für eine bestimmte SAF-Domäne, die durch Definition einer als APPLID in der APPL-Klasse referenzierten Ressource konfiguriert wird. Um einen Benutzer für eine Domäne zu authentifizieren, muss der Benutzer Lesezugriff auf die Ressource APPLID in der APPL-Klasse haben. Wenn die APPL-Klasse aktiv ist, benötigt die nicht authentifizierte Benutzer-ID (standardmäßig WSGUEST) auch Lesezugriff auf die APPLID-Ressource in der APPL-Klasse.
Der vom Server verwendete Name der APPLID-Ressource wird durch das Attribut profilePrefix im Konfigurationselement <safCredentials> angegeben. Wenn Sie dieses Element nicht angeben, wird das Standardattribut "profilePrefix" von BBGZDFLT verwendet.
<safCredentials profilePrefix="BBGZDFLT"/>
// BBGZDFLT-APPLID in RACF definieren.
RDEFINE APPL BBGZDFLT UACC(NONE)
// APPL-Klasse aktivieren.
// Wenn die Klasse nicht aktiv ist, unterliegt die Domäne keinen Einschränkungen, d. h., jeder kann sich für sie authentifizieren.
SETROPTS CLASSACT(APPL)
// Alle Benutzer, die vom Server authentifiziert werden sollen, müssen Lesezugriff auf die APPLID in der APPL-Klasse haben:
PERMIT BBGZDFLT CLASS(APPL) ACCESS(READ) ID(UserID)
//Die nicht authentifizierte Benutzer-ID erfordert Lesezugriff (READ) auf die APPLID in der APPL-Klasse:
PERMIT BBGZDFLT CLASS(APPL) ACCESS(READ) ID(WSGUEST)
RDEFINE SERVER BBG.SECPFX.BBGZDFLT UACC(NONE)
PERMIT BBG.SECPFX.BBGZDFLT CLASS(SERVER) ACCESS(READ) ID(serverUserId)
Subjekt für Java EE-Rolle berechtigen
profilePrefix="BBGZDFLT"
Application resource name = "MYAPP"
Application role name = "ADMIN"
Mapped profile name = "BBGZDFLT.MYAPP.ADMIN"
Weitere Informationen finden Sie unter Liberty: Zuordnung von Rollen zu SAF-Profilen steuern.
EJBROLE profile name = "BBGZDFLT.ADMIN"
HLQ = "BBGZDFLT"
RDEFINE SERVER BBG.SECPFX.BBGZDFLT UACC(NONE)
PERMIT BBG.SECPFX.BBGZDFLT CLASS(SERVER) ACCESS(READ) ID(serverUserId)
Da der SAF-Rollenmapper in diesem Beispiel
für das übergeordnete Qualifikationsmerkmal (HLQ) des zugeordneten Profils das Profilpräfix angibt, steuert das Profil BBG.SECPFX.BBGZDFLT
sowohl die Berechtigungen für die Authentifizierung der APPLID als auch die Berechtigungen für die Autorisierung des
EJBROLE-Profils.Subjekt für andere SAF-Ressourcen berechtigen
Java EE-Anwendungen können Zugriffssteuerungsprüfungen für andere SAF-Klassen als EJBROLE durchführen. WZSSAD beschränkt die SAF-Klassen außerhalb von EJBROLE, für die der Server Berechtigungsoperationen ausführen kann. Dies verhindert, dass ein nicht berechtigter Benutzer oder eine nicht berechtigte Anwendung den Server für die Verwendung berechtigter SAF-Services nutzt, um Informationen zu den Ressourcenprofilen in anderen SAF-Klassen als EJBROLE abruft, für die der Benutzer bzw. die Anwendung berechtigt bzw. nicht berechtigt ist.
RDEFINE SERVER BBG.SECCLASS.FACILITY UACC(NONE)
PERMIT BBG.SECCLASS.FACILITY CLASS(SERVER) ACCESS(READ) ID(serverUserId)