設定 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 元素的相關聯服務名稱。
  • 使用稱為 invokeURIzosConnectService 屬性定義。您可以利用這個屬性,來定義服務名稱相關聯的自訂 URI 以及下列任何 HTTP 動詞:GET、POST、PUT、DELETE;例如:
    <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) 時,呼叫 invoke 方法。

如需 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 服務為目標的每一項要求都會先經過記載、授權和審核,再送往遠端端點。攔截程式也會記載和審核遠端端點所傳回的回應。由於為 serviceY 服務配置了 invokeURI 屬性,要求端可以使用 https://host:port/my/custom/uri URL,以及 GETPOSTPUT,DELETE HTTP 方法,來啟動 serviceY invoke 方法的實作。在此情況下,由於 serviceY 服務會參照 z/OS Connect REST 用戶端服務實例,會對此實例呼叫 invoke() 方法。如需可用配置屬性和預設值的相關資訊,請參閱 z/OS Connect 1.0z/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