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

教程:使用 Azure Web 应用程序防火墙配置 Azure Active Directory B2C

重要

自 2025 年 5 月 1 日起,Azure AD B2C 将不再可供新客户购买。 在我们的常见问题解答中了解详细信息

了解如何使用自定义域为 Azure Active Directory B2C (Azure AD B2C) 租户启用 Azure Web 应用程序防火墙(WAF)服务。 WAF 可保护 Web 应用程序免受常见的攻击和漏洞,例如跨站点脚本、DDoS 攻击和恶意机器人活动。

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

先决条件

若要开始,需要:

Azure AD B2C 中的自定义域

若要在 Azure AD B2C 中使用自定义域,请使用 Azure Front Door 中的自定义域功能。 请参阅 为 Azure AD B2C 启用自定义域

重要

配置自定义域后,请参阅 测试自定义域

启用 WAF

若要启用 WAF,请配置 WAF 策略并将其与 Azure Front Door 高级版相关联,以便进行保护。 Azure Front Door 高级版针对安全性进行优化,使你能够访问由 Azure 管理的规则集,从而防范常见漏洞和攻击,包括跨站点脚本和 Java 攻击。 WAF 提供有助于防止恶意机器人活动的规则集。 WAF 为应用程序提供第 7 层 DDoS 保护。

创建 WAF 策略

使用 Azure 托管的默认规则集(DRS)创建 WAF 策略。 请参阅 Web 应用程序防火墙 DRS 规则组和规则

  1. 登录到 Azure 门户
  2. 选择“ 创建资源”。
  3. 搜索 Azure WAF。
  4. 选择来自微软的 Azure 服务 Web 应用程序防火墙 (WAF)。
  5. 选择 创建
  6. 转到“ 创建 WAF 策略 ”页。
  7. 选择“基本信息”选项卡。
  8. 对于“策略适用范围”,请选择“全局 WAF (Front Door)”
  9. 对于 Front Door SKU,请选择 高级 SKU。
  10. 对于“订阅”,请选择 Front Door 订阅名称
  11. 对于“资源组”,请选择 Front Door 资源组名称。
  12. 对于“策略名称”,请输入 WAF 策略的唯一名称。
  13. 对于“策略状态”,选择“已启用”。
  14. 对于“策略模式”,选择“检测”
  15. 转到“创建 WAF 策略”页的 “关联 ”选项卡。
  16. 选择“+ 关联 Front Door 配置文件”
  17. 对于 Front Door,请选择与 Azure AD B2C 自定义域相关联的 Front Door 名称。
  18. 对于 ,请选择要与 WAF 策略关联的 Azure AD B2C 自定义域。
  19. 选择 并添加
  20. 选择“查看 + 创建”
  21. 选择 创建

默认规则集

为 Azure Front Door 创建新的 WAF 策略时,它会自动使用最新版本的 Azure 托管的默认规则集(DRS)进行部署。 此规则集可保护 Web 应用程序免受常见漏洞和攻击。 Azure 托管的规则集可轻松针对一组常见的安全威胁来部署保护。 由于规则集由 Azure 管理,因此这些规则会根据需要进行更新以防范新的攻击签名。 DRS 包括与 Microsoft Intelligence 团队合作编写的 Microsoft 威胁情报收集规则,以提供更高的覆盖率、特定漏洞的修补程序,以及更有效的误报减少。

了解详细信息: Azure Web 应用程序防火墙 DRS 规则组和规则

Bot Manager 规则集

默认情况下,Azure Front Door WAF 使用最新版本的 Azure 托管机器人管理器规则集进行部署。 此规则集将机器人流量分类为好、坏和未知。 此规则集后面的机器人签名由 WAF 平台管理,并动态更新。

了解详细信息: Azure Front Door 上的 Azure Web 应用程序防火墙是什么?

速率限制

使用速率限制可以检测和阻止来自任何套接字 IP 地址的异常多的流量。 通过在 Azure Front Door 中使用 Azure WAF,可以缓解某些类型的拒绝服务攻击。 速率限制可以保护你免受因为客户端配置错误导致在短时间内发送大量请求的影响。 必须使用自定义规则在 WAF 上手动配置速率限制。

了解详细信息:

检测和防护模式

创建 WAF 策略时,策略将在 检测模式下启动。 建议在针对流量调整 WAF 时,将 WAF 策略保留为检测模式。 在此模式下,WAF 不会阻止请求。 相反,启用日志记录后,WAF 会记录与 WAF 规则匹配的请求。

启用日志记录: Azure Web 应用程序防火墙监视和日志记录

启用日志记录后,WAF 开始接收请求流量,可以通过查看日志开始优化 WAF。

了解详细信息: 为 Azure Front Door 优化 Azure Web 应用程序防火墙

以下查询显示 WAF 策略在过去 24 小时内阻止的请求。 详细信息包括:规则名称、请求数据、策略执行的作和策略模式。

AzureDiagnostics
| where TimeGenerated >= ago(24h)
| where Category == "FrontdoorWebApplicationFirewallLog"
| where action_s == "Block"
| project RuleID=ruleName_s, DetailMsg=details_msg_s, Action=action_s, Mode=policyMode_s, DetailData=details_data_s
规则 ID DetailMsg 行动 模式 详细数据
默认规则集-1.0-SQLI-942430 受限 SQL 字符异常情况检测 (args):已超出特殊字符数 (12) 检测 匹配的数据:CfDJ8KQ8bY6D

查看 WAF 日志以确定策略规则是否会导致误报。 然后,根据 WAF 日志排除 WAF 规则。

了解详细信息

完成日志记录设置并确保WAF已接收流量后,您可以评估机器人管理规则在处理机器人流量方面的有效性。 以下查询显示机器人管理器规则集所采取的措施,并按机器人类型分类。 在 检测模式下,WAF 仅记录机器人流量动作。 但是,一旦切换到阻止模式,WAF 就会开始主动阻止不需要的机器人流量。

AzureDiagnostics
| where Category == "FrontDoorWebApplicationFirewallLog"
| where action_s in ("Log", "Allow", "Block", "JSChallenge", "Redirect") and ruleName_s contains "BotManager"
| extend RuleGroup = extract("Microsoft_BotManagerRuleSet-[\\d\\.]+-(.*?)-Bot\\d+", 1, ruleName_s)
| extend RuleGroupAction = strcat(RuleGroup, " - ", action_s)
| summarize Hits = count() by RuleGroupAction, bin(TimeGenerated, 30m)
| project TimeGenerated, RuleGroupAction, Hits
| render columnchart kind=stacked

切换模式

若要查看 WAF 对请求流量采取作,请从“概述”页中选择“ 切换到预防”模式 ,将模式从“检测”更改为“预防”。 与 DRS 中的规则匹配的请求将被阻止并记录在 WAF 日志中。 当请求与 DRS 中的一个或多个规则匹配时,WAF 会采取规定的动作,并记录结果。 默认情况下,DRS 设置为异常评分模式;这意味着 WAF 不会对请求执行任何作,除非满足异常分数阈值。

了解详细信息:异常评分 Azure Web 应用程序防火墙 DRS 规则组和规则

若要还原到 检测模式,请从“概述”页中选择“ 切换到检测模式 ”。

后续步骤