API のプロキシの設定

外部アプリケーションとバックエンドサーバー間の中継として機能する API プロキシを使用して、API または Web サービスを攻撃から保護します。API プロキシは、バックエンドの場所やプログラミング言語に依存しません。さらに、バックエンドを Mule 以外のアプリケーションにすることもできます。

API の前に API プロキシをデプロイすると、プロキシは API ゲートウェイ機能を採用し、さまざまな種類の​ポリシー​を使用して API を保護します。Anypoint Platform を使用すると、プロキシアプリケーションを CloudHub または Anypoint Runtime Fabric に直接デプロイできます。これにより、プロキシアプリケーションは API Manager によって自動的に追跡されます。

プロキシを使用するエンドポイントとして API を設定すると、API Manager はプロキシアプリケーションを自動的に生成し、アプリケーションに自動検出機能を含めます。Mule はすべてのポリシーが適用されるまで API をロックします。クライアントアプリケーション (コンシューマー) がプロキシをコールし、プロキシから API にコールが転送されます。アプリケーションをデプロイした後、Mule インスタンスはクライアント ID とシークレットを使用して API Manager をコールし、API のポリシーを取得します。

API プロキシを使用する状況

API プロキシは次の場合に使用できます。

  • API が稼働中で、その API が Mule Runtime Engine (Mule) サーバーでまだホストされていない場合

  • クローズドコードである Mule アプリケーションがすでにあり、その​自動検出​を含めるためのアクセス権がない場合

  • RAML、OAS、または SOAP API のすべての受信要求に対してスキーマ検証を実行する場合

API の作成に使用した仕様の種類に応じて、次の API プロキシのいずれかを適用できます。

API プロキシの仕組み

オンプレミス Mule インスタンスを実行している場合は、事前設定済み Mule アプリケーションをダウンロードし、​正しい Anypoint Platform ログイン情報を使用して Mule インスタンスを設定​することで、他の Mule アプリケーションと同じ方法でデプロイできます。

次の図は、要求がプロキシエンドポイントと通信し、バックエンドサーバーから応答を返す方法を示しています。

API プロキシフローの概要

図に示されているように、外部コンシューマーアプリケーションが要求を送信すると、最初にプロキシエンドポイントへの ping を実行します。この時点で、API に適用されてプロキシアプリケーションで参照されるすべてのポリシーが有効になります。

ポリシーがいずれかの検証に失敗した場合、エラー応答が返され (失敗したポリシーに該当)、要求はバックエンドに到達しません。逆に、ポリシーによって実行されたすべての検証とアクションが成功した場合、要求はバックエンド API に送られ、プロキシはこの応答をコンシューマーアプリケーションに返します。

ポリシーが無効な要求を検出した場合、その要求はバックエンド API に到達しません。逆に、すべての検証が成功した場合、要求は処理のためにバックエンド API に送られ、プロキシは応答がコンシューマーアプリケーションに返されることを許可します。

API プロキシの利点

API プロキシは、チームのパフォーマンスとバックエンド API のセキュリティを向上させ、ポリシーを使用して受信要求を検証します。API プロキシには次の利点があります。

  • エンジニアリング帯域幅が増加

    数回クリックするだけで、プロキシを ​Runtime Fabric​、​CloudHub​、​ハイブリッド​、または​スタンドアロン Mule​ に直接デプロイできます。Mule アプリケーションの作成方法がわからない場合でも、API Manager が自動検出を使用してアプリケーションを作成および設定するため、デプロイの完了後に API Manager によって API が自動的に追跡されます。

  • カスタマイズが可能

    ほとんどの場合、API Manager で生成されたプロキシはデプロイメントに適しています。ただし、Mule 環境では ​Anypoint Studio​ を使用して、カスタム要件に合わせてプロキシを編集できます。

  • ポリシーと ​Mule API Analytics​ を使用して API を保護および管理する

    プロキシを使用すると、Mule API Analytics へのアクセスを含め、API ゲートウェイの全機能を使用して API を保護できます。

  • 検証を実装する

    RAML、REST、WSDL プロキシを含むほとんどのプロキシでは、API 定義を使用して、すべての受信要求に対する検証を実行できます。要件に応じて、さまざまなレベルの検証を選択できます。

    • 通常の検証

      ペイロード、クエリパラメーター、URI パラメーター、ヘッダー、フォームパラメーターを API 仕様で定義されたスキーマと比較します。この設定を使用すると、API 仕様の未指定のクエリパラメーターとヘッダーもバックエンドサービスに送信されます。

    • 厳格な検証

      API 仕様で明示的に定義されている要求、パラメーター、ヘッダーのみを受け入れ、バックエンドが受け取るパラメーターを制御することで API のセキュリティを確保します。