Configuration de la sécurité pour z/OS Connect

L'application z/OS Connect est accessible aux utilisateurs authentifiés qui y sont également habilités de par le rôle zosConnectAccess. Vous pouvez configurer une autorisation de groupe au niveau de la définition du service. L'autorisation de groupe est prise en charge pour les types de groupe SAF et LDAP.

Pourquoi et quand exécuter cette tâche

Les utilisateurs doivent être authentifiés avant de pouvoir accéder à l'application z/OS Connect.

Le mécanisme d'authentification par défaut requis par z/OS Connect est CLIENT_CERT. Les utilisateurs doivent être autorisés de par leur affectation au rôle zosConnectAccess pour pouvoir accéder à l'application z/OS Connect. Le mécanisme de transport requis est HTTPS.

Vous pouvez configurer z/OS Connect pour une exécution sans les éventuelles contraintes de sécurité en définissant les attributs requireSecure et requireAuth. Ces attributs sont définis dans l'élément zosConnectManager, qui s'applique à tous les services configurés, ou dans l'élément zosConnectService pour un service spécifique. Si les attributs sont définis à la fois dans l'élément zosConnectService et de manière globale dans l'élément zosConnectManager, la valeur définie dans zosConnectService est utilisée. Voir zosConnectManager et zosConnectService pour obtenir des informations supplémentaires sur ces attributs.

Pour fournir un niveau de sécurité plus robuste, z/OS Connect offre la possibilité de circonscrire l'accès via une autorisation de groupe pouvant être définie via SAF ou LDAP. Dans ce cadre, z/OS Connect définit trois niveaux d'autorité :

  • Administrateur - Les utilisateurs avec prérogatives d'administrateur sont habilités à interroger des services, effectuer des tâches supplémentaires sur ceux-ci et les appeler.
  • Opérations - Les utilisateurs avec droits d'opération sont habilités à effectuer des tâches sur les services, tels que arrêt, démarrage, etc., mais ne sont pas autorisés à appeler les services.
  • Appel - Les utilisateurs avec droits d'appel sont habilités à appeler des services, mais n'ont pas d'autres droits.

z/OS Connect fournit un intercepteur d'autorisation qui implémente l'interface de fournisseur de service (SPI) com.ibm.wsspi.zos.connect.Interceptor(). Cet intercepteur gère SAF, tout comme LDAP. Il utilise l'API de sécurité getGroupsforUser() en interne afin de déterminer de quels groupes fait partie l'utilisateur actuel, puis compare ces groupes à ceux fournis dans la définition du service ou dans la définition globale.

Lorsque l'intercepteur d'autorisation fourni par z/OS Connect est activé, les noms de groupes RACF ou LDAP associés à des utilisateurs peuvent également être associés à n'importe quel groupe mentionné auparavant au niveau de la définition du service ou de la définition globale. Au niveau global, ils peuvent être définis sous l'élément de configuration <zosConnectManager>. Les attributs définis à ce niveau comprennent : globalAdminGroup, globalOperationsGroup et globalInvokeGroup. Si ce niveau est configuré, ils s'appliquent à tous les services configurés. Si une plus grande granularité est souhaitée, les groupes peuvent également être configurés au niveau du service sous l'élément de configuration <zosConnectService>. Les attributs définis à ce niveau sont les suivants : adminGroup, operationsGroup et invokeGroup. Si ces valeurs sont spécifiées, elles prévalent sur celles définies au niveau global.

Lorsque un intercepteur d'autorisation est défini au niveau global, les vérifications d'autorisation sont effectuées une seule fois pour tous les services. Lorsque vous utilisez une requête /zosConnect/operations/getStatistics pour plusieurs services et reconnaissance de service, l'utilisateur obtient des informations sur tous les services enregistrés auprès de z/OS Connect lorsque les conditions suivantes sont réunies :
  • L'utilisateur passe la vérification d'autorisation
  • Aucune autre condition n'empêche le renvoi des informations sur les services
Si l'intercepteur d'autorisation est placé dans une définition de niveau de service, l'accès aux informations sur ces services est limité aux utilisateurs figurant dans cette définition de service.

Par exemple, supposons la configuration suivante avec l'intercepteur d'autorisation défini au niveau du service :

User "USR1" Groups: ADMINS1, ADMINS2

User "USR2" Groups: OPERATS1

User "USR3" Groups: ADMINS2, OPERATS1

Configuration z/OS Connect :
<!-- z/OS Connect global configuration. It applies to all services. -->
<zosConnectManager globalAdminGroup="ADMINS1"  globalOperationsGroup="OPERATS1" globalInvokeGroup="INVOKES1"/>

<!-- Interceptor configuration -->
<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" .../>
Tableau 1. . Accès aux données par les utilisateurs
  service1 service2 service3
USR1 X X X
USR2 -- -- X
USR3 X -- X

Procédure

  1. Configurez l'authentification utilisateur pour accès à l'application z/OS Connect. Pour configurer l'authentification du certificat client, reportez-vous à la documentation sur la configuration de votre application Web et du serveur pour l'authentification du certificat client. Pour configurer l'authentification via un registre, reportez-vous à la documentation sur l'authentification d'utilisateurs dans Liberty.

    Exemple 1 : Configuration de registre de base en suivant les étapes décrites dans la documentation pour configurer un registre utilisateur de base pour Liberty.

    Server.xml :
    <featureManager>    
    	<feature>zosConnect-1.0</feature> 
    	<feature>ssl-1.0</feature>     
    	<feature>appSecurity-2.0</feature>
    </featureManager> 
    
    
    <!-- Define a keystore. --> 
    <keyStore id="defaultKeyStore" password="Liberty"/>
    
    
    <!-- Fail over to basic authenitcation --> 
    <webAppSecurity allowFailOverToBasicAuth="true"/> 
    
    
    <!-- Basic registry definition -->
    <basicRegistry id="basic1" realm="zosConnect">    
    	<user name="Fred" password="fredpwd"/>
    </basicRegistry>

    Exemple 2 : Configuration de registre SAF en suivant les étapes décrites dans la documentation pour activer et configurer le registre SAF sur z/OS.

    Server.xml :
    <featureManager> 
    	<feature>zosConnect-1.0</feature>  
    	<feature>ssl-1.0</feature>    
    	<feature>appSecurity-2.0</feature> 
    	<feature>zosSecurity-1.0</feature> 
    </featureManager>    
    
    <!-- Saf registry definition -->  
    <safRegistry id="saf" realm="zosConnect"/>

    Configuration RACF. Pour plus d'informations, reportez-vous à la documentation sur Liberty : Accès aux ressources de sécurité z/OS à l'aide de WZSSAD :

    # Définition de la classe APPL basée sur le préfixe de sécurité par défaut nommé BBGZDFLT.
    RDEFINE APPL BBGZDFLT UACC(NONE)                                 
    
    # Activate the APPL class. 
    SETROPTS CLASSACT(APPL)   
    
    # For FRED to be authenticated by the server, assign FRED READ access to the APPLID in the APPL class.                                       
    PERMIT BBGZDFLT ID(FRED) ACCESS(READ) CLASS(APPL)
    
    # L'ID utilisateur non authentifié (WSGUEST par défaut) requiert un accès READ à APPLID dans la classe APPL
    PERMIT BBGZDFLT CLASS(APPL) ACCESS(READ) ID(unauthenticatedUserId)  
    
    # Octroi au serveur d'une autorisation pour effectuer des appels d'authentification.
    RDEFINE SERVER BBG.SECPFX.BBGZDFLT UACC(NONE)
    PERMIT BBG.SECPFX.BBGZDFLT ID(serverId) ACCESS(READ) CLASS(SERVER)

    Notez que le serveur doit avoir la permission d'utiliser les routines de service SAFCRED autorisées. Pour plus d'informations, reportez-vous à la documentation sur l'activation de services z/OS autorisés sous Liberty for z/OS.

  2. Configurez les autorisations d'accès des utilisateurs à l'application z/OS Connect en affectant des utilisateurs au rôle zosConnectAccess. Pour ce faire, reportez-vous à la documentation sur la configuration d'une autorisation pour les applications sous Liberty.
    Ajoutez les éléments suivants au fichier de configuration server.xml, comme décrit dans l'étape 1 de Exemple 1 :
    <authorization-roles id="zos.connect.access.roles"> 
    	<security-role name="zosConnectAccess">           
    		<user name="Fred"/>  
    	</security-role>  
    </authorization-roles>

    Exemple 2 : Configuration d'autorisation à l'aide de SAF/RACF :

    1. Ajoutez les éléments suivants à la configuration décrite à l'étape 1 de l'exemple 2 .
      <safAuthorization id="saf2" />
    2. Configuration RACF. Commandes affectant FRED au rôle zosConnectAccess :
      RDEFINE EJBROLE BBGZDFLT.zos.connect.access.roles.zosConnectAccess 
      UACC(NONE)                                                       
      PERMIT BBGZDFLT.zos.connect.access.roles.zosConnectAccess 
      CLASS(EJBROLE) ID(FRED) ACCESS(READ)
  3. (Facultatif) Définissez des groupes pour autorisation lors de l'utilisation de l'intercepteur d'autorisation de z/OS Connect.
    Exemple 1 : Définition de groupe RACF lors de l'utilisation de SAF :
    ADDGROUP OPERATS1 OMVS(GID(xxx)) OWNER(xxxx)
    
    # Ajout de l'utilisateur FRED sous le groupe OPERATS1
    ADDUSER FRED DFLTGRP(OPERATS1) OMVS(UID(xxx) HOME(/xxxx) PROGRAM(/bin/sh)) NAME('USER FRED') NOPASSWORD
    ALTUSER FRED PASSWORD(xxxxxxx) NOEXPIRED
    
    # Connexion de l'utilisateur FRED au groupe OPERATS1
    CONNECT FRED GROUP(OPERATS1)

    Notez que le groupe "OPERATS1" peut ensuite être utilisé lors de la définition de groupes d'autorisation à utiliser par l'intercepteur d'autorisation de z/OS Connect. Par exemple : <zosConnectManager globalOperationsGroup="OPERATS1"/> ou <zosConnectService serviceRef="service1" operationsGroup="OPERATS1"/>


Icône indiquant le type de rubrique Rubrique Tâche

Nom du fichier : twlp_zconnect_security.html