z/OS Connect REST 클라이언트 서비스 설정

z/OS Connect REST 클라이언트 지원을 통해 z/OS Connect 사용자는 z/OS Connect를 통해 원격 REST 애플리케이션으로 요청을 라우팅할 수 있으므로 기존 인터셉터 인프라스트럭처를 이용할 수 있습니다.

이 태스크 정보

zosConnect-1.2 기능을 구성하면 이 기능을 사용할 수 있습니다. z/OS Connect REST 클라이언트 서비스는 z/OS Connect 서비스 SPI 구현입니다. 이 서비스를 호출하는 요청은 두 가지 방법으로 이루어집니다.

  • ?action=invoke 조회 매개변수 메커니즘을 다음과 같이 사용하십시오. https://hostName:port/zosConnect/services/serviceY?action=invoke (여기서, serviceY는 구성된 zosConnectServiceRestClient 요소와 연관된 서비스 이름입니다.)
  • invokeURI라고 하는 zosConnectService 속성 정의를 사용하십시오. 이 속성을 사용하여 서비스 이름 및 HTTP 동사(GET, POST, PUT, DELETE)와 연관된 사용자 정의 URI를 정의할 수 있습니다. 예:
    <zosConnectService serviceName="serviceY" serviceRef="restClientServiceY" invokeURI="/my/custom/uri" />

정의된 서비스의 서비스 호출 예는 다음과 같습니다. https://host:port/my/custom/uri (HTTP verb: GET/POST/PUT/DELETE). z/OS Connect는 예에 정의된 invokeURI 속성과 serviceName 속성 간의 연관을 파악합니다. z/OS Connect는 z/OS Connect 연관 서비스(restClientServiceY)의 구현에서 호출 메소드를 호출합니다.

invokeURI 속성에서 제공하는 기능 및 유연성에 대한 자세한 정보는 z/OS Connect 1.2에 대한 문서를 참조하십시오.

프로시저

  1. zosConnectServiceRestClient 요소를 구성하고 zosConnectService 요소와 연관시키십시오.
    <featureManager>
    	 <feature>zosConnect-1.2</feature>
    </featureManager>
    <!-- Global interceptor definition to run for all service requests -->
    <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"/>
        
    <!-- ZosConnectManager definition -->
    <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" />

    예에서 serviceY 서비스를 대상으로 하는 요청은 연관된 restClientServiceY 서비스에서 구성되고 구성된 URI 및 DELETE HTTP 메소드를 사용하는 원격 호스트 및 포트로 라우팅됩니다. JSON 페이로드는 원격 요청과 함께 자동으로 전송됩니다. zosConnectServiceRestClient 요소를 구성하는 경우 호스트 이름 및 포트 번호 속성을 지정하십시오. URI 또는 httpMethod 속성을 지정하지 않으면 serviceY 서비스를 대상으로 하는 원래 클라이언트 요청에서 온 값이 사용됩니다. 또한 예는 인터셉터가 글로벌로 실행되도록 구성되었기 때문에 serviceY 서비스를 대상으로 하는 모든 요청을 원격 엔드포인트로 라우팅하기 전에 로깅하고 권한 부여하고 감사하는 데 대한 내용을 표시합니다. 또한 인터셉터는 원격 엔드포인트에서 리턴 시 응답을 로깅하고 감사합니다. invokeURI 속성이 serviceY 서비스에 대해 구성되었으므로 요청자가 URL https://host:port/my/custom/uri를 사용하고 GET, POST, PUT, 또는 DELETE HTTP 중 하나를 사용하여 serviceY invoke 메소드의 구현을 시작할 수 있습니다. 이 경우 serviceY 서비스가 z/OS Connect REST 클라이언트 서비스의 인스턴스를 참조하므로 이 인스턴스의 invoke() 메소드가 호출됩니다. 사용 가능한 구성 속성 및 기본값에 대한 자세한 정보는 z/OS Connect 1.0 and z/OS Connect 1.2의 문서를 참조하십시오.

  2. (선택사항) 기본 인증을 구성하십시오. appSecurity-2.0 기능을 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" />

    구성을 사용하면 원격 REST 애플리케이션 엔드포인트에 대한 요청이 작성될 때 zosConnectServiceRestClientBasicAuth 요소에 대해 구성된 사용자 이름 및 비밀번호를 전파할 수 있습니다.

  3. (선택사항) 인증서 인증을 구성하십시오. appSecurity-2.0 기능을 server.xml 파일에 추가하십시오.

    예는 클라이언트 키 저장소 및 클라이언트 신뢰 저장소를 구성하고 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" />

주제의 유형을 표시하는 아이콘 태스크 주제

파일 이름: twlp_zconnect_rest_client.html