Application Gateway WAF を使用したアプリケーションの保護
Microsoft Entra アプリケーション プロキシで公開されたアプリに Web Application Firewall (WAF) 保護を追加します。
Web Application Firewall の詳細については、「Azure Web Application Firewall とは」を参照してください。
展開の手順
この記事では、Microsoft Entra アプリケーション プロキシと Application Gateway 上の Azure WAF を使用することで、インターネット上の Web アプリケーションを安全に公開する手順について説明します。
内部アプリケーションにトラフィックを送信するように Azure Application Gateway を構成する
この記事では、Application Gateway 構成の一部の手順が省略されます。 Application Gateway を作成して構成する方法の詳細なガイドについては、「クイックスタート: Azure Application Gateway による Web トラフィックのルーティング - Microsoft Entra 管理センター」を参照してください。
1.プライベート側の HTTPS リスナーを作成します。
ユーザーが企業ネットワークに接続したときに Web アプリケーションにプライベートにアクセスできるようにリスナーを作成します。
2.Web サーバーを使用してバックエンド プールを作成します。
この例では、バックエンド サーバーにインターネット インフォメーション サービス (IIS) がインストールされています。
3.バックエンド設定を作成します。
バックエンド設定により、要求がバックエンド プール サーバーに到達する方法が決まります。
4.これまでの手順で作成したリスナー、バックエンド プール、バックエンド設定を結び付けるルーティング規則を作成します。
5.Application Gateway で WAF を有効にし、防止モードに設定します。
Microsoft Entra ID のアプリケーション プロキシを使ってリモート アクセスできるようにアプリケーションを構成する
両方のコネクタ VM、Application Gateway、バックエンド サーバーが Azure の同じ仮想ネットワークにデプロイされます。 このセットアップは、オンプレミスにデプロイされるアプリケーションとコネクタにも適用されます。
Microsoft Entra ID のアプリケーション プロキシにアプリケーションを追加する方法の詳細なガイドについては、「チュートリアル: Microsoft Entra ID のアプリケーション プロキシを使ってリモート アクセスするためのオンプレミス アプリケーションを追加する」を参照してください。 プライベート ネットワーク コネクタに関するパフォーマンスの考慮事項の詳細については、「Microsoft Entra アプリケーション プロキシを使用してトラフィック フローを最適化する」を参照してください。
この例では、同じ URL が内部 URL と外部 URL として構成されました。 リモート クライアントは、アプリケーション プロキシを使って、インターネット経由でポート 443 でアプリケーションにアクセスします。 企業ネットワークに接続されているクライアントは、アプリケーションにプライベートでアクセスします。 アクセスは、ポート 443 上の Application Gateway を介して直接行われます。 アプリケーション プロキシでカスタム ドメインを構成する詳細な手順については、「Microsoft Entra アプリケーション プロキシを使ってカスタム ドメインを構成する」を参照してください。
Azure プライベート ドメイン ネーム システム (DNS) ゾーンは、A レコードを使って作成されます。 A レコードは、Application Gateway のプライベート フロントエンド IP アドレスへの www.fabrikam.one
を指します。 このレコードにより、コネクタ VM が Application Gateway に要求を確実に送信できるようになります。
アプリケーションをテストする
テスト用にユーザーを追加した後、https://www.fabrikam.one にアクセスしてアプリケーションをテストできます。 ユーザーは Microsoft Entra ID で認証するように求められ、認証が成功すると、アプリケーションにアクセスできるようになります。
攻撃をシミュレート
WAF が悪意のある要求をブロックしているかどうかをテストするには、基本的な SQL インジェクション署名を使用して攻撃をシミュレートできます。 (例: https://www.fabrikam.one/api/sqlquery?query=x%22%20or%201%3D1%20--")。
HTTP 403 応答は、要求が WAF によってブロックされたことを示します。
Application Gateway ファイアウォール ログには、要求と、その要求が WAF によってブロックされた理由が詳しく記されています。