You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何在Azure B2C中限制验证码邮件发送频次?

针对Azure环境下邮箱验证码发送限流的优化方案
  • 基于Azure Redis Cache的分布式限流
    拿邮箱地址当唯一标识key,发送验证码前先查Redis里这个key的计数:

    • 要是计数没到阈值(比如10分钟内5次),就发验证码,同时把计数加1,给key设个和时间窗口一致的过期时间(比如10分钟)
    • 要是计数到阈值了,直接返回限流提示
      这个方案轻量延迟低,适配分布式系统,比AFD的全局限流精准得多,能直接控制单个邮箱的发送频率。
  • 用Azure Cosmos DB/Table Storage跟踪发送记录
    每次发验证码,往Cosmos DB或者Table Storage里写一条带邮箱、发送时间的记录。发之前先查这个邮箱在指定时间窗口内的记录数:

    • 数量没超限制就发,超了就拒绝
      可以给记录设TTL自动清理过期数据,不用手动维护存储冗余。适合需要留存发送日志的场景,和Azure现有服务集成也顺畅。
  • Azure AD B2C自定义策略加限流逻辑
    如果你的注册/重置密码是用Azure AD B2C做的,能在自定义策略里加验证步骤:

    1. 调用自定义API(比如Azure Functions)查这个邮箱的发送次数
    2. 根据API返回结果决定能不能继续发验证码
      这个方案直接嵌在身份验证流程里,不用额外配网关,逻辑更贴合业务场景。
  • Azure API Management(APIM)精细化限流
    比起AFD,APIM支持按请求参数(比如邮箱)限流,能配置按email参数的具体值统计调用次数,设置时间窗口和阈值。配置比AFD简单,限流粒度更细,精准针对单个邮箱控制。

内容的提问来源于stack exchange,提问作者Dannom

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.19 04:32:36