Azure 机器人服务的 Teams 通道的 IP 地址限制

IP address restriction to Teams channel of Azure Bot Service

我正在通过 Azure 门户机器人服务注册创建机器人。关于 Azure Bot Service 的 Teams 通道,我想知道是否可以通过 Azure Portal 上的设置限制 IP 地址访问 bot 服务的通道?

我已阅读有关条件访问位置策略的信息,但这似乎适用于 Azure Active Directory 的范围,我不确定它在机器人服务范围内的哪个位置发挥作用。如果条件访问位置策略与我的问题相关,将不胜感激关于它如何与机器人服务相关的更多信息。

编辑:

我收录了这篇文章中的有用图片。 https://hilton.giesenow.com/how-bot-calls-actually-work

对于可以是 public 或私有的机器人,我想在图像的第 2 步应用某种形式的限制或身份验证,即来自 Azure 门户上的 Microsoft Bot Framework Services。

所有 (运行) 个机器人都可以 public 访问。

  • 您无法阻止 Teams 从任何租户向您发送消息,
  • 如果某人有您的应用程序清单,您也无法阻止他们安装您的机器人。
  • 您甚至可以在不安装的情况下@提及机器人

因此,作为开发人员,您必须防止您的机器人处理不需要的消息。

您有两个不同的选项来限制您的机器人处理的传入消息。

  1. 如果您处理的是安全数据,绝对推荐使用 OAuth 来验证用户。

  2. 使用中间件进行过滤(只允许您订阅的客户)是另一个不错的选择。例如,对于 Teams 渠道,将 TeamsTenantFilteringMiddleware class 添加到您的机器人,并在您的启动方法中连接它。
    请参阅这些示例:

所以对于租户过滤,它看起来像:

            if (!this.tenantMap.Contains(tenantId))
            {
                throw new UnauthorizedAccessException("Tenant Id '" + tenantId + "' is not allowed access.");
            }