WSDL クエリ ハンドラ サービス

WSDL クエリ ハンドラ サービスは、 に組み込まれているデフォルトの WSDL ダウンロード機能
gateway92
WSDL クエリ ハンドラ サービスは、
Layer7 API Gateway
に組み込まれているデフォルトの WSDL ダウンロード機能
目次
このサービスにより、対象サービスの認証またはセキュリティ ポリシーと関係なく、WSDL およびサービス ドキュメントを取得できます。このサービスを公開するには、WSDL クエリ ハンドラの公開ウィザードを実行します。ポリシーで WSDL リクエスト用のカスタム認証を定義するには公開されたサービスを変更します。
前提条件
WSDL クエリ ハンドラ サービスを使用するには、以下の手順に従って、組み込みの WSDL ダウンロード サービスを無効にします。
  1. service.wsdlQueryEnabled
    クラスタ プロパティ
    false
    に設定します。これにより、WSDL リクエストの WSDL ダウンロード サービスに対する既存の指定が無効になります。
  2. HTTP(S) リスン ポートのプロパティで WSDL ダウンロード サービスを無効にします。 
これらの手順が完了したら、WSDL クエリ ハンドラの公開ウィザードで WSDL クエリ ハンドラ サービスを公開できます。
サービスによって作成されるポリシー
WSDL クエリ ハンドラ サービスを公開すると、3 つの新しいエントリがサービスおよびポリシー リストに表示されます。
WSDL クエリ ハンドラ サービス
WSDL Query Handler Service は、リクエストに応じて、サービスの WSDL または WSDL 依存関係(サービス ドキュメント)を取得して返します。このポリシーを変更しないでください。 
このサービスの名前は、WSDL クエリ ハンドラの公開ウィザードの実行時に設定できます。
テンプレート ポリシーは、WSDL クエリ ハンドラの公開ウィザードで指定されたサービス名およびルーティング URI を使用します。
ポリシーのフローの理解
ウィザードによって作成されたテンプレート WSDL クエリ ポリシーには、ポリシーを理解するのに役立つコメントが埋め込まれています。ポリシーのフローの概要を以下で説明します。
まず、ポリシーは、リクエストのタイプを判定します。
  • 明示的なサービスの WSDL 依存関係(サービス ドキュメント)リクエスト:
    クエリ パラメータの serviceoid と servicedocoid が両方とも存在します。
  • 明示的なサービスの WSDL リクエスト:
    クエリ パラメータの serviceoid は存在しますが、servicedocoid は存在しません。
  • インターセプト/リダイレクトされた WSDL クエリ:
    どちらのクエリ パラメータも存在せず、サービス ID の解決にはリクエスト URI が使用されます。サービス解決が失敗する場合(サービスが存在しないか、SOAP サービスでない場合)、そのリクエストは無効と見なされます。
タイプが判定されると、サービス ID とサービス ドキュメント ID (使用可能な場合)がコンテキスト変数として使用可能になります。
次に、カスタム認証ポリシー フラグメントが実行されます。
最後に、サービスは、以下の手順を実行します。
  1. WSDL または WSDL 依存関係ドキュメントを取得します
  2. エンドポイントおよび参照を更新します。
  3. レスポンス メッセージをリクエスタに返すように設定します。
WSDL クエリ ハンドラ ポリシーを変更しないでください。WSDL Query Handler - Authentication ポリシー フラグメントをカスタマイズすると、認証セクションが自動的に更新されます。
WSDL Query Handler - Authentication
このポリシー フラグメントを変更して、組織に必要な認証をカスタマイズします。デフォルト認証は、SSL を介した内部アイデンティティ プロバイダに対する HTTP 基本認証を実装します。
このポリシー フラグメントは WSDL クエリ ハンドラポリシーに含まれています。したがって、変更はすべて自動的に反映されます。
WSDL Query Handler - Query Redirection
このポリシーは、WSDL クエリ(末尾が「?wsdl」の公開されたサービスへの HTTP リクエスト)を WSDL クエリ ハンドラ サービスに送信します。
このポリシー フラグメントを
message-received
グローバル ポリシーに追加します。詳細については、「グローバル ポリシーのフラグメント」を参照してください。