変換ポリシーを使用して URL をマスクする
組織は、API によって発行される情報を短期間で調整しなければならないことがあります。 たとえば、法律の変更に準拠したり、セキュリティ上の新たな脅威に対処したりするためです。
Census API の例は、API の呼び出し元になっている URL に関する詳細を公開します。 この情報を使用すると、悪意のあるユーザーは API Management ゲートウェイをバイパスし、安全性の低いエンドポイントを公開することによって、国勢調査データへのアクセスを試みることができます。 開発リーダーであるあなたは、API の応答本文でこれらの URL をマスクすることを考えています。
ここでは、API の応答のヘッダーと本文の内容を操作する API Management ポリシーの使用方法を説明します。
応答を変換する理由
API 呼び出しの応答本文には、要求されているデータが含まれます。 たとえば、Census API では、応答本文には応答対象者の JSON データが含まれています。 また、次を見ると個々のユーザーを表示するための URL リンクが本文にどのように含まれているかがわかります。
これらのリンクは Census API のエンドポイントに基づいており、代わりに API Management の URL を表示するようにマスクする必要があります。
この構成を達成するため、変換ポリシーを作成します。
Note
API Management で使用可能なメカニズムのいずれかを使用してバックエンド API をセキュリティで保護することがベスト プラクティスです。 たとえば、それがクライアント証明書を要求するように構成してから、API Management がその証明書を提供するように構成します。 この構成では、バックエンドによって認識される証明書を誰も持っていないため、バックエンド API を直接呼び出して、API Management ゲートウェイを回避することはできません。
変換ポリシー
変換ポリシーでは、API 呼び出しの内容が変更されます。 一部の変換ポリシーはヘッダーに適用され、他のポリシーは本文に適用されます。 次の変換を使用できます。
変換 | 説明 |
---|---|
JSON から XML に変換する | 要求または応答の本文を JSON から XML に変換します。 |
XML から JSON に変換する | 要求または応答の本文を XML から JSON に変換します。 |
本文内の文字列を検索して置換する | 要求または応答内の文字部分列を検索し、別の部分文字列に置き換えます。 |
コンテンツ内の URL をマスクする | 応答本文内のリンクを、ゲートウェイを経由する同等のリンクをポイントするように書き換えます。 |
バックエンド サービスを設定する | 受信した要求のバックエンド サービスを変更します。 |
本文を設定する | 要求または応答のメッセージ本文を設定します。 |
HTTP ヘッダーを設定する | 既存の応答ヘッダーまたは要求ヘッダーに値を割り当てるか、新しい応答ヘッダーまたは要求ヘッダーを追加します。 |
クエリ文字列のパラメーターを設定する | 要求のクエリ文字列のパラメーターの追加、値の置換、または削除を行います。 |
URL を書き換える | 要求の URL をパブリック形式から Web サービスで想定されている形式に変換します。 |
XSLT を使って XML を変換する | 要求本文または応答本文に含まれる XML に XSL 変換を適用します。 |
次の演習では、コンテンツ内のマスク URL 変換を使用してリンクを変更します。