【问题标题】:IP address restriction to Teams channel of Azure Bot ServiceAzure Bot Service 的 Teams 通道的 IP 地址限制
【发布时间】:2021-08-24 05:23:55
【问题描述】:

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

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

编辑:

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

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

【问题讨论】:

  • Bots 没有这样的设置。通常,IP 限制是一种过时的实现安全性的方式,尤其是对团队等 SaaS 服务而言。您能否详细说明您要完成的工作,而不仅仅是允许 IP 地址/范围?
  • @JosVerlinde 我包含了一个编辑以供进一步解释。如果用户要向 Microsoft Teams 中的机器人发送消息,我想知道在将请求转发(即发送或不发送)到机器人服务的消息之前是否可以对请求应用限制或身份验证Microsoft Bot Framework Services 的端点。
  • @BoydChing - 如果您希望根据租户添加限制,请查看How do I restrict the use of my bot to users belonging to my tenant only? doc。

标签: azure botframework microsoft-teams


【解决方案1】:

所有(正在运行的)机器人都可以公开访问。

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

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

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

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

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

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

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

【讨论】:

  • 基于 @wajeed-MSFT 在早期 cmets 中的信息
  • 这个答案很好!
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2014-12-15
  • 2017-04-06
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2013-06-12
  • 1970-01-01
相关资源
最近更新 更多