你当前正在访问 Microsoft Azure Global Edition 技术文档网站。 如果需要访问由世纪互联运营的 Microsoft Azure 中国技术文档网站,请访问 https://docs.azure.cn

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

使用 Azure Active Directory (Azure AD) 应用程序代理公开在本地、密封 Azure 虚拟网络或其他公有云中部署的应用程序时,可以在数据流中集成 Web 应用程序防火墙 (WAF),防止应用程序受到恶意攻击。

什么是 Azure Web 应用程序防火墙?

Azure 应用程序网关提供的 Azure Web 应用程序防火墙 (WAF) 可以对 Web 应用程序进行集中保护,避免其受到常见的攻击和漏洞伤害。 Web 应用程序已逐渐成为利用常见已知漏洞的恶意攻击的目标。 SQL 注入和跨站点脚本是最常见的攻击。 有关应用程序网关上 Azure WAF 的详细信息,请参阅什么是 Azure 应用程序网关上的 Azure Web 应用程序防火墙?

部署步骤

本文通过在应用程序网关上将 Azure AD 应用程序代理与 Azure WAF 集成,指导你完成在 Internet 上安全公开 Web 应用程序的步骤。 本指南将使用 Azure 门户。 此部署的参考体系结构如下所示。

描述的部署图。

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

本文将省略应用程序网关配置的某些步骤。 有关如何创建和配置应用程序网关的详细指南,请参阅快速入门:使用 Azure 应用程序网关定向 Web 流量 - Azure 门户

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

这样,用户可以在连接到公司网络时私下访问 Web 应用程序。

应用程序网关侦听器的屏幕截图。

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

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

应用程序网关后端的屏幕截图。

3. 创建后端设置。

这将确定请求到达后端池服务器的方式。

应用程序网关后端设置的屏幕截图。

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

将规则添加到应用程序网关 1 的屏幕截图。将规则添加到应用程序网关 2 的屏幕截图。

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

在应用程序网关中启用 WAF 的屏幕截图。

将应用程序配置为通过 Azure AD 中的应用程序代理远程访问。

如上图所示,连接器 VM、应用程序网关和后端服务器都部署在 Azure 中的同一 VNET 中。 此设置也适用于本地部署的应用程序和连接器。

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

应用程序代理配置的屏幕截图。

在此示例中,配置了与内部和外部 URL 相同的 URL。 通过应用程序代理,远程客户端将在端口 443 上借由 Internet 访问应用程序,而连接到公司网络的客户端将直接通过应用程序网关(也在端口 443 上)私下访问应用程序。 有关如何在应用程序代理中配置自定义域的详细步骤,请参阅使用 Azure AD 应用程序代理配置自定义域

为确保连接器 VM 向应用程序网关发送请求,创建了一个 Azure 专用 DNS 区域,其中 A 记录将 www.fabrikam.one 指向应用程序网关的专用前端 IP。

测试应用程序。

添加用户进行测试后,可以通过访问 https://www.fabrikam.one 测试应用程序。 用户将收到在 Azure AD 中进行身份验证并在身份验证成功后访问该应用程序的提示。

身份验证步骤的屏幕截图。服务器响应的屏幕截图。

模拟攻击。

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

WAF 响应的屏幕截图。

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

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

WAF 日志的屏幕截图。

后续步骤

若要防止误报,请了解如何自定义 Web 应用程序防火墙规则、配置 Web 应用程序防火墙排除列表Web 应用程序防火墙自定义规则