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 実装です。このサービスを呼び出す要求は、次の 2 つの方法で実行されます。

  • 次のように、?action=invoke 照会パラメーター・メカニズムを使用する。https://hostName:port/zosConnect/services/serviceY?action=invoke。ここで、serviceY は、構成されている zosConnectServiceRestClient エレメントに関連付けられたサービス名です。
  • invokeURI と呼ばれる zosConnectService 属性定義を使用する。この属性を使用して、サービス名に関連付けられたカスタム URI と、いずれかの HTTP 動詞 (GET、POST、PUT、DELETE) を定義することができます。例えば、次のようになります。
    <zosConnectService serviceName="serviceY" serviceRef="restClientServiceY" invokeURI="/my/custom/uri" />

定義されているサービスのサービス呼び出しの例: https://host:port/my/custom/uri (HTTP 動詞: 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 サービスを宛先とするすべての要求は、リモート・エンドポイントに経路指定される前に、ログに記録され、認可され、監査されることも示しています。また、インターセプターは、リモート・エンドポイントから返された応答もログに記録し監査します。invokeURI 属性は serviceY サービス用に構成されているため、リクエスターは、URL https://host:port/my/custom/uri を使用し、GETPOSTPUT、または DELETE HTTP のいずれかのメソッドを使用して、serviceY の invoke メソッドの実装を開始できます。この場合、serviceY サービスは z/OS Connect REST クライアント・サービスのインスタンスを参照しているため、このインスタンスの invoke() メソッドが呼び出されます。使用可能な構成属性およびデフォルト値について詳しくは、z/OS Connect 1.0 および 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