如何获取Bot Connector的IP地址以配置本地Bot应用的防火墙白名单?
获取Azure Bot Connector IP范围用于本地Bot防火墙白名单配置
没问题,完全可以通过获取Azure Bot Connector的IP范围来配置防火墙白名单,但有几个关键细节要注意——毕竟Azure的服务IP不是固定单个地址,而是一组动态更新的IP段。下面是具体的操作方法和注意事项:
获取官方IP范围列表
微软每周会发布Azure全球及各区域的服务IP范围集合,其中就包含Bot Connector对应的条目。你可以获取这份官方的JSON文件,然后筛选出标记为BotService的IP段(这是Bot Connector服务对应的统一标签)。用脚本快速筛选目标IP
如果你不想手动翻JSON文件,可以用PowerShell或Azure CLI快速提取需要的IP范围。比如用PowerShell的示例命令:
# 替换URL中的日期为最新的(微软每周更新文件名中的日期) $ipRanges = Invoke-RestMethod -Uri "https://download.microsoft.com/download/7/1/D/71D86715-5596-4529-9B13-DA13A5DE5B63/ServiceTags_Public_20240506.json" # 筛选BotService对应的所有IP前缀 $botServiceIps = $ipRanges.values | Where-Object { $_.name -eq "BotService" } | Select-Object -ExpandProperty properties | Select-Object -ExpandProperty addressPrefixes # 输出结果 $botServiceIps
执行后就能得到所有Bot Connector服务使用的IP段了。
- 必须注意的要点
- 这些IP范围每周都会更新,所以生产环境一定要设置自动化流程(比如定时脚本)来同步最新的IP段,否则微软调整IP后你的Bot会收不到消息。
- 如果你只使用特定区域的Bot Connector,可以筛选带区域后缀的标签,比如
BotService.EastUS,这样能缩小白名单的IP范围,更安全。 - 确保本地服务器开放Bot监听的端口(默认是3978,自定义端口的话用你设置的那个),同时Azure Bot注册里的消息端点要正确指向你的公网可访问地址(生产环境建议用固定公网IP,测试阶段可以用ngrok之类的隧道工具临时映射)。
内容的提问来源于stack exchange,提问作者yfan183
相关产品推荐
相关产品推荐

