使用应用程序网关 WAF 保护应用程序

概述

为使用 Microsoft Entra 应用程序代理发布的应用添加 Web 应用程序防火墙(WAF)保护。

有关 Web 应用程序防火墙的详细信息,请参阅 什么是 Azure 应用程序网关上的 Azure Web 应用程序防火墙?

部署步骤

本文提供了在 Internet 上使用 Microsoft Entra 应用程序代理和应用程序网关上的 Azure WAF 安全地公开 Web 应用程序的步骤。

显示 Web 应用程序流量从 Internet 流经 Azure WAF 和应用程序网关到 Microsoft Entra 应用程序代理和内部应用程序服务器的体系结构图。

配置 Azure 应用程序网关以将流量发送到内部应用程序

本文中省略了应用程序网关配置的一些步骤。 有关创建和配置应用程序网关的详细指南,请参阅 快速入门:使用 Azure 应用程序网关直接 Web 流量 - Microsoft Entra 管理中心

1.创建面向专用的 HTTPS 侦听器

创建侦听器,以便用户可以在连接到公司网络时私下访问 Web 应用程序。

应用程序网关侦听器配置页,其中显示了企业网络用户的专用访问设置。

2.使用 Web 服务器创建后端池

在此示例中,后端服务器安装了 Internet Information Services (IIS)。

显示 IIS Web 服务器的应用程序网关后端池配置。

3.创建后端设置

后端设置确定请求如何到达后端池服务器。

显示请求路由参数的应用程序网关后端设置配置页。

4. 创建一个路由规则,用于连接侦听器、后端池和在前面的步骤中创建的后端设置

显示侦听器选择步骤的应用程序网关路由规则配置页。 显示后端池和后端设置选择的应用程序网关路由规则配置页。

5. 在应用程序网关中启用 WAF 并将其设置为“阻止”模式

应用程序网关 WAF 配置页,WAF 已启用,并选择了预防模式。

在 Microsoft Entra ID 中将应用程序配置为通过应用程序代理进行远程访问

连接器 VM、应用程序网关和后端服务器部署在 Azure 中的同一虚拟网络中。 安装程序也适用于部署在本地的应用程序和连接器。

有关如何在 Microsoft Entra ID 中将应用程序添加到应用程序代理的详细指南,请参阅 教程:在 Microsoft Entra ID 中添加通过应用程序代理进行远程访问的本地应用程序。 有关专用网络连接器的性能注意事项的详细信息,请参阅 使用 Microsoft Entra 应用程序代理优化流量流

Microsoft Entra 应用程序代理的配置显示了用于端口 443 访问的匹配的内部和外部 URL。

在此示例中,相同的 URL 被配置为内部和外部的 URL。 远程客户端通过应用程序代理通过互联网使用 443 端口访问应用程序。 连接到企业网络的客户端以私密访问应用程序。 访问直接通过端口 443 上的应用程序网关。 有关在应用程序代理中配置自定义域的详细步骤,请参阅 使用 Microsoft Entra 应用程序代理配置自定义域

使用 A 记录创建 Azure 专用域名系统(DNS)区域 。 A 记录将 www.fabrikam.one 指向应用程序网关的专用前端 IP 地址。 该记录可确保连接器 VM 将请求发送到应用程序网关。

测试应用程序

添加用户进行测试后,可以通过访问https://www.fabrikam.one来测试应用程序。 系统会提示用户在 Microsoft Entra ID 中进行身份验证,并在身份验证成功后访问应用程序。

Microsoft Entra ID 登录页,提示用户进行身份验证。 显示身份验证后应用程序访问成功的浏览器。

模拟攻击

若要测试 WAF 是否阻止恶意请求,可以使用基本的 SQL 注入签名模拟攻击。 例如,"https://www.fabrikam.one/api/sqlquery?query=x%22%20or%201%3D1%20--"。

浏览器显示 HTTP 403 禁止访问的错误,这是由于 WAF 阻止了 SQL 注入尝试。

HTTP 403 响应确认 WAF 阻止了请求。

应用程序网关 防火墙日志 提供有关请求的更多详细信息,以及 WAF 阻止请求的原因。

应用程序网关防火墙日志条目,其中显示了阻止的请求详细信息和 SQL 注入规则冲突。

后续步骤