Sicherheit für z/OS Connect konfigurieren

Die z/OS Connect-Anwendung kann von authentifizierten Benutzern aufgerufen werden, die ebenfalls für die Rolle "zosConnectAccess" berechtigt sind. Sie können die Gruppenberechtigung auf der Ebene der Servicedefinition konfigurieren. Die Gruppenberechtigung wird für SAF- und LDAP-Gruppentypen unterstützt.

Informationen zu diesem Vorgang

Benutzer müssen authentifiziert werden, bevor sie auf die z/OS Connect-Anwendung zugreifen können.

Der Standardauthentifizierungsmechanismus von z/OS Connect ist CLIENT_CERT. Die Benutzer müssen mit der Rolle "zosConnectAccess" berechtigt sein, damit sie auf die z/OS Connect-Anwendung zugreifen können. Der erforderliche Transportmechanismus ist HTTPS.

Sie können z/OS Connect für eine Ausführung ohne Integritätsbedingungen für die Sicherheit konfigurieren, indem Sie die Definitionen der Attribute "requireSecure" und "requireAuth" festlegen. Diese Attribute werden unter dem Element "zosConnectManager", das für alle konfigurierten Services gilt, oder unter dem Element "zosConnectService" für einen bestimmten Service definiert. Wenn die Attribute unter dem Element "zosConnectService" und global unter dem Element "zosConnectManager" definiert werden, wird der unter "zosConnectService" definierte Wert verwendet. Weitere Informationen zu diesen Attributen finden Sie unter zosConnectManager und zosConnectService

Um eine differenziertere Sicherheitsebene festzulegen, bietet z/OS Connect die Möglichkeit, den Zugriff auf Basis der Gruppenberechtigung einzuschränken, die über SAF oder LDAP konfiguriert werden kann. Dafür definiert z/OS Connect drei Berechtigungsebenen:

  • Administrator: Benutzer mit Administratorberechtigung haben die Berechtigung zum Abfragen von Services, zum Ausführen von operativen Tasks für diese Services und und zum Aufrufen der Services.
  • Operativ: Benutzer mit operativer Berechtigung können Tasks für die Services ausführen, z. B. die Services stoppen, starten usw. Sie sind jedoch nicht berechtigt, Services aufzurufen.
  • Aufrufen: Benutzer mit Aufrufberechtigung können Services aufrufen, haben aber keine andere Berechtigung.

z/OS Connect stellt einen Berechtigungsinterceptor bereit, der die SPI com.ibm.wsspi.zos.connect.Interceptor() implementiert. Dieser Interceptor unterstützt sowohl SAF als auch LDAP. Dieser Interceptor verwendet intern die Sicherheits-API getGroupsforUser(), um zu ermitteln, zu welchen Gruppen der Benutzer gehört, und vergleicht diese Gruppen anschließend mit den in der Servicedefinition oder in der globalen Definition angegebenen Gruppen.

Wenn der von z/OS Connect bereitgestellte Berechtigungsinterceptor aktiviert ist, können die den Benutzern zugeordneten RACF- oder LDAP-Gruppennamen auch jeder Gruppe zugeordnet werden, die vorher auf der Ebene der globalen oder Servicedefinition angegeben ist. Auf globaler Ebene können sie unter dem Konfigurationselement <zosConnectManager> definiert werden. Die auf dieser Ebene definierten Attribute sind globalAdminGroup, globalOperationsGroup und globalInvokeGroup. Wenn sie konfiguriert sind, gelten sie für alle konfigurierten Services. Wenn eine größere Differenzierung erwünscht ist, können die Gruppen auch auf der Serviceebene unter dem Konfigurationselement <zosConnectService> konfiguriert werden. Die auf dieser Ebene definierten Attribute sind adminGroup, operationsGroup und invokeGroup. Wenn diese Werte angegeben ist, überschreiben sie die auf globaler Ebene definierten Werte.

Wenn ein Berechtigungsinterceptor auf der globalen Ebene definiert ist, werden Berechtigungsprüfungen ein Mal für alle Services ausgeführt. Wenn Sie die Anforderung /zosConnect/operations/getStatistics für mehr als einen Service und für die Serviceerkennung verwenden, erhält der Benutzer Informationen zu allen mit z/OS Connect registrierten Services, sofern die folgenden Bedingungen zutreffen:
  • Der Benutzer durchläuft die Berechtigungsprüfung erfolgreich.
  • Es gibt keine anderen Bedingungen, die verhindern, dass Serviceinformationen zurückgegeben werden.
Wenn der Berechtigungsinterceptor in eine Definition auf Servicebene aufgenommen wird, ist der Zugriff auf die Informationen für diese Services auf die Benutzer beschränkt, die in der Servicedefinition angegeben sind.

Beispiel: Angenommen, die folgende Konfiguration mit dem Berechtigungsinterceptor ist auf der Serviceebene definiert:

Benutzer "USR1" Gruppen: ADMINS1, ADMINS2

Benutzer "USR2" Gruppen: OPERATS1

Benutzer "USR3" Gruppen: ADMINS2, OPERATS1

z/OS Connect-Konfiguration:
<!-- globale z/OS Connect-Konfiguration. Gilt für alle Services. -->
<zosConnectManager globalAdminGroup="ADMINS1"  globalOperationsGroup="OPERATS1" globalInvokeGroup="INVOKES1"/>

<!-- Interceptorkonfiguration -->
<zosConnectInterceptors id="interceptorList1"  interceptorRef="zosConnectAuthorizationInterceptor"/>
<authorizationInterceptor id="zosConnectAuthorizationInterceptor"/>

<!--Service 1-->
<zosConnectService serviceName="service1" serviceRef="service1Ref" adminGroup="ADMINS2" operationsGroup="OPERATS2"   interceptorsRef="interceptorList1" .../>

<!--Service 2-->
<zosConnectService serviceName="service2" serviceRef="service2Ref" operationsGroup="OPERATS2"   interceptorsRef="interceptorList1" .../>

<!--Service 3-->
<zosConnectService  serviceName="service3" serviceRef="service3Ref" adminGroup="ADMINS1" interceptorsRef="interceptorList1" .../>
Tabelle 1. . Benutzerdatenzugriff
  service1 service2 service3
USR1 X X X
USR2 -- -- X
USR3 X -- X

Vorgehensweise

  1. Einrichten der Benutzerauthentifizierung für den Zugriff auf die z/OS Connect-Anwendung. Zum Einrichten der Clientzertifikatsauthentifizierung lesen Sie die Dokumentation über die Konfiguration Ihrer Webanwendung und Ihres Servers für die Clientzertifikatsauthentifizierung. Zum Einrichten der Authentifizierung über eine Registry lesen die Dokumentation über die Authentifizierung von Benutzern in Liberty.

    Beispiel 1: Konfiguration der Basisregistry anhand der Schritte, die in der Dokumentation zur Konfiguration einer Basisbenutzerregistry für Liberty beschrieben sind.

    Server.xml:
    <featureManager>    
    	<feature>zosConnect-1.0</feature> 
    	<feature>ssl-1.0</feature>     
    	<feature>appSecurity-2.0</feature>
    </featureManager> 
    
    
    <!-- Definition eines Keystore. --> 
    <keyStore id="defaultKeyStore" password="Liberty"/>
    
    
    <!-- Failover zur Basisauthentifizierung -->
    <webAppSecurity allowFailOverToBasicAuth="true"/> 
    
    
    <!-- Definition der Basisregistry -->
    <basicRegistry id="basic1" realm="zosConnect">    
    	<user name="Fred" password="fredpwd"/>
    </basicRegistry>

    Beispiel 2: SAF-Registry-Konfiguration anhand der Schritte, die in der Dokumentation zur Aktivierung und Konfiguration der SAF-Registry unter z/OS beschrieben sind.

    Server.xml:
    <featureManager> 
    	<feature>zosConnect-1.0</feature>  
    	<feature>ssl-1.0</feature>    
    	<feature>appSecurity-2.0</feature> 
    	<feature>zosSecurity-1.0</feature> 
    </featureManager>    
    
    <!-- Definition der SAF-Registry -->
    <safRegistry id="saf" realm="zosConnect"/>

    Einrichten von RACF. Details finden Sie in der Dokumentation zu Liberty: Zugriff auf die z/OS-Sicherheitsressourcen über WZSSAD:

    # Definition der Klasse APPL basierend auf dem Standardsicherheitspräfix BBGZDFLT.
    RDEFINE APPL BBGZDFLT UACC(NONE)
    
    # Aktivieren der Klasse APPL.
    SETROPTS CLASSACT(APPL)
    
    # Damit FRED vom Server authentifiziert wird, ordnen Sie FRED Lesezugriff (READ) für APPLID in der Klasse APPL zu.
    PERMIT BBGZDFLT ID(FRED) ACCESS(READ) CLASS(APPL)
    
    # Die nicht authentifizierte Benutzer-ID (standardmäßig WSGUEST) erfordert Lesezugriff (READ) auf die APPLID in der Klasse APPL
    PERMIT BBGZDFLT CLASS(APPL) ACCESS(READ) ID(unauthenticatedUserId)  
    
    # Erteilen Sie die Serverberechtigung zum Ausführen von Authentifizierungsaufrufen.
    RDEFINE SERVER BBG.SECPFX.BBGZDFLT UACC(NONE)
    PERMIT BBG.SECPFX.BBGZDFLT ID(serverId) ACCESS(READ) CLASS(SERVER)

    Beachten Sie, dass dem Server die Berechtigung zur Verwendung der berechtigten Serviceroutinen SAFCRED erteilt werden muss. Weitere Informationen finden Sie in der Dokumentation über das Aktivieren von berechtigten z/OS-Services in Liberty für z/OS.

  2. Einrichten der Benutzerberechtigung für den Zugriff auf die z/OS Connect-Anwendung durch Zuordnen von Benutzern zur Rolle zosConnectAccess. Lesen Sie hierzu die Dokumentation über die Konfiguration der Berechtigung für Anwendungen in Liberty.
    Fügen Sie der in Schritt 1 von Beispiel 1 gezeigten Konfiguration der Datei server.xml Folgendes hinzu:
    <authorization-roles id="zos.connect.access.roles"> 
    	<security-role name="zosConnectAccess">           
    		<user name="Fred"/>  
    	</security-role>  
    </authorization-roles>

    Beispiel 2: Berechtigungskonfiguration mit SAF/RACF:

    1. Fügen Sie der in Schritt 1 von Beispiel 2 gezeigten Konfiguration Folgendes hinzu:
      <safAuthorization id="saf2" />
    2. Einrichten von RACF. Befehle, mit denen FRED der Rolle zosConnectAccess zugeordnet wird.
      RDEFINE EJBROLE BBGZDFLT.zos.connect.access.roles.zosConnectAccess 
      UACC(NONE)                                                       
      PERMIT BBGZDFLT.zos.connect.access.roles.zosConnectAccess 
      CLASS(EJBROLE) ID(FRED) ACCESS(READ)
  3. (Optional) Definition von Gruppen für die Berechtigung bei Verwendung des z/OS Connect-Berechtigungsinterceptors.
    Beispiel 1: RACF-Gruppendefinition bei Verwendung von SAF:
    ADDGROUP OPERATS1 OMVS(GID(xxx)) OWNER(xxxx)
    
    # Benutzer FRED unter der Gruppe OPERATS1 hinzufügen
    ADDUSER FRED DFLTGRP(OPERATS1) OMVS(UID(xxx) HOME(/xxxx) PROGRAM(/bin/sh)) NAME('USER FRED') NOPASSWORD
    ALTUSER FRED PASSWORD(xxxxxxx) NOEXPIRED
    
    # Fred mit der Gruppe OPERATS1 verbinden
    CONNECT FRED GROUP(OPERATS1)

    Beachten Sie, dass die Gruppe "OPERATS1" verwendet werden kann, wenn Berechtigungsgruppen zur Verwendung durch den z/OS Connect-Berechtigungsinterceptor definiert werden. Beispiel: <zosConnectManager globalOperationsGroup="OPERATS1"/> oder <zosConnectService serviceRef="service1" operationsGroup="OPERATS1"/>


Symbol das den Typ des Artikels anzeigt. Taskartikel

Dateiname: twlp_zconnect_security.html