Configuración del servicio de cliente REST de z/OS Connect

El cliente REST de z/OS Connect permite a los usuarios de z/OS Connect direccionar solicitudes a aplicaciones REST remotas a través de z/OS Connect; por lo tanto, se saca partido de la infraestructura de interceptor existente.

Acerca de esta tarea

Esta función está disponible cuando se configura la característica zosConnect-1.2. El servicio de cliente REST de z/OS Connect es una implementación de SPI de servicio de z/OS Connect. Las solicitudes que invocan este servicio se realizan de dos formas:

  • Utilice el mecanismo de parámetro de consulta ?action=invoke del modo siguiente: https://nombre_host:puerto/zosConnect/services/serviceY?action=invoke donde serviceY es el nombre del servicio que está asociado al elemento zosConnectServiceRestClient configurado.
  • Utilice la definición de atributo zosConnectService que se llama invokeURI. Puede utilizar este atributo para definir un URI personalizado que está asociado a un nombre de servición y cualquiera de los verbos HTTP siguientes: GET, POST, PUT, DELETE; por ejemplo:
    <zosConnectService serviceName="serviceY" serviceRef="restClientServiceY" invokeURI="/my/custom/uri" />

Un ejemplo de invocación de servicio para el servicio definido es: https://host:puerto/my/custom/uri (HTTP verb: GET/POST/PUT/DELETE). z/OS Connect comprende la asociación entre el atributo invokeURI y el atributo serviceName definido en el ejemplo. z/OS Connect llama al método de invocación en la implementación del servicio asociado de z/OS Connect (restClientServiceY).

Si desea más información sobre la prestación y la flexibilidad que ofrece el atributo invokeURI,consulte la documentación para z/OS Connect 1.2.

Procedimiento

  1. Configure el elemento zosConnectServiceRestClient y asócielo a un elemento zosConnectService.
    <featureManager>
    	 <feature>zosConnect-1.2</feature>
    </featureManager>
    
    <!-- Definición de interceptor global para ejecutar para
    todas las solicitudes de servicio -->
    <zosConnectInterceptors interceptorRef="auth,audit,fileSystemLogger" id="globalInterceptorList1"/>
    <fileSystemloggerInterceptor id="fileSystemLogger" logName="service1Log_%SERVERNAME%"sequence="1"/>
    <authorizationInterceptor id="auth" sequence="2"/>
    <auditInterceptor id="audit" sequence="3"/>
        
    <!-- Definición de ZosConnectManager -->
    <zosConnectManager globalAdminGroup="ADMIN" 
                       globalOperationsGroup="OPS" 
                       globalInvokeGroup="INVOKE"
                       globalInterceptorsRef="globalInterceptorList1"/>
    
    <zosConnectServiceRestClient id="restClientServiceY" 
                                 host="remoteHostName" 
                                 port="8800" 
                                 uri="/remote/endpoint" 
                                 httpMethod="DELETE"/>
    <zosConnectService serviceName="serviceY"
    serviceRef="restClientServiceY" invokeURI="/my/custom/uri" />

    En el ejemplo, las solicitudes que especifican como destino el servicio serviceY se direccionan al host remoto y el puerto que se ha configurado en el servicio restClientServiceY asociado y que utiliza el URI configurado y el método HTTP DELETE. La carga útil de JSON se envía automáticamente con la solicitud remota. Cuando configure el elemento zosConnectServiceRestClient, especifique el nombre de host y los atributos de número de puerto. Si no especifica los atributos uri o httpMethod, los valores que se utilizan son los de la solicitud de cliente original que está especificando como destino el servicio serviceY. Además, el ejemplo muestra que dado que los interceptores se han configurado para ejecutarse de forma global, cada solicitud que especifica como destino el servicio serviceY se registra, autoriza y audita antes de direccionarse al punto final remoto. Los interceptores también registran y auditan las respuestas cuando se devuelven del punto final remoto. Puesto que el atributo invokeURI se ha configurado para el servicio serviceY, el solicitante puede iniciar la implementación del método serviceY invokeutilizando el URL siguiente: https://host:puerto/my/custom/uri y utilizandop cualquiera de estos métodos GET, POST, PUT, o DELETE HTTP. En este caso, puesto que el servicio serviceY hace referencia a una instancia del servicio de cliente REST de z/OS Connect, se llama al método invoke() en esta instancia. Para obtener información adicional sobre los atributos de configuración disponibles y los valores predeterminados, consulte la documentación de z/OS Connect 1.0 y z/OS Connect 1.2.

  2. (Opcional) Configure la autenticación básica. Añada la característica appSecurity-2.0 al archivo server.xml.
    <featureManager>
    	 <feature>zosConnect-1.2</feature>
    	 <feature>appSecurity-2.0</feature>
    </featureManager>
    
    <zosConnectServiceRestClientBasicAuth id="fredBasicAuth" userName="Fred" password="{xor}OS06Oy8oOw=="/>
    
    <zosConnectServiceRestClient id="restClientServiceY" 
                                 host="remoteHostName" 
                                 port="8800" 
                                 uri="/remote/endpoint" 
                                 httpMethod="POST" 
                                 basicAuthRef="bobBasicAuth"/>
    
    <zosConnectService serviceName="serviceY"
    serviceRef="restClientServiceY" />

    La configuración permite que el nombre de usuario y la contraseña que se han configurado para el elemento zosConnectServiceRestClientBasicAuth se propaguen cuando se realiza la solicitud al punto final de aplicación REST remoto.

  3. (Opcional) Configure la autenticación de certificado. Añada la característica appSecurity-2.0 al archivo server.xml.

    El ejemplo muestra cómo configurar el almacén de claves del cliente y el almacén de confianza del cliente y asociarlos a la configuración de zosConnectServiceRestClient.

    <featureManager>
    	 <feature>zosConnect-1.2</feature>
    	 <feature>appSecurity-2.0</feature>
    </featureManager>
    
    <keyStore id="clientKeyStore" password="zosConnect"
              location="${server.config.dir}/resources/security/clientKey.jks" />
    
    <keyStore id="clientTrustStore" password="zosConnect"
              location="${server.config.dir}/resources/security/clientTrust.jks" />
    
    <ssl id="sslCertificates" keyStoreRef="clientKeyStore" trustStoreRef="clientTrustStore"/>
    
    <zosConnectServiceRestClient id="restClientServiceY" 
                                 host="remoteHostName" 
                                 port="8800" 
                                 uri="/remote/endpoint"  
                                 httpMethod="PUT" 
                                 sslCertsRef="sslCertificates"/>
    
    <zosConnectService serviceName="serviceY"
    serviceRef="restClientServiceY" />

Icono que indica el tipo de tema Tema de tarea

Nombre de archivo: twlp_zconnect_rest_client.html