z/OS Connect REST クライアント・サポートにより、z/OS Connect ユーザーは z/OS Connect を介してリモート REST アプリケーションに要求を経路指定できます。これにより、既存のインターセプター・インフラストラクチャーを利用することができます。
このタスクについて
この機能は、zosConnect-1.2 フィーチャーを構成すると使用可能になります。z/OS Connect REST クライアント・サービスは、z/OS Connect サービスの SPI 実装です。このサービスを呼び出す要求は、次の 2 つの方法で実行されます。
定義されているサービスのサービス呼び出しの例: 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 の資料を参照してください。
- 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 および z/OS Connect 1.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 エレメント用に構成されているユーザー名とパスワードを伝搬することができます。
- (オプション) 証明書認証を構成します。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" />