首页 > 解决方案 > MS TEAMS 聊天机器人:我可以将我的 MS Botframework 聊天机器人限制为仅使用我的 MS Teams 租户 ID 而不需要额外的身份验证吗

问题描述

问题陈述:

我们使用 MS Botframework V4、QnA Maker 和 LUIS 创建了一个常见问题聊天机器人。客户的信息安全团队怀疑,如果有人掌握了聊天机器人的MicrosoftAppId,那么任何人都可以在任何其他 MS Teams 订阅上发布聊天机器人,从而造成安全威胁。

条件:客户端不赞成添加额外的身份验证提示,尽管用户已登录 MS Teams,但仍必须登录

询问:

阅读问题陈述后,任何人都可以帮助我提供一种技术/方法,我们可以将 ChatBot 限制为只能从客户组织的 MS 团队中使用,而无需任何额外的身份验证登录提示用户登录

-提前致谢

标签: botframeworkmicrosoft-teams

解决方案


请阅读我的博客文章,了解机器人通信如何工作,以了解请求-响应过程。正如它所解释的那样,虽然响应看起来有点来自机器人的“同步”,但实际上并非如此,而是通过对 Bot Framework 服务本身的回复发送的。为了做到这一点,您的机器人代码(dotnet、node 等)实际上需要两件事 - 应用程序 ID 和应用程序密码,以便在内部进行身份验证。没有这些,没有人可以代表您运行另一个机器人,即使在同一个 ID 上也是如此。请注意,这是一个“常规”机器人场景,不需要用户以任何方式实际登录机器人(例如,仅当您想代表用户访问图表上的资源时才需要这样做,

另外,但也许相关,如果有人确实拥有您的应用程序 ID,他们可能会注册一个应用程序,这会导致更多消息发送到您的机器人(如果您愿意,这是一种“DOS”攻击),但这仍然不会如上所述,使他们能够“充当”您的机器人。[更新:请注意,您的机器人最终仍会响应这些消息,因为它不会知道这不是您自己的 Teams 应用程序。我很难理解为什么有人可能想要这样做。但是,没有人能够开发和托管模拟您的机器人的机器人 - 他们需要 (a) 您的应用程序密码和 (b) 在 Bot Framework 中更改您托管机器人的注册端点]。

因此,尽管仅 App Id 是不够的,但您当然应该尝试保护它(例如 KayVault),尤其是使用应用程序密码。

另外,可以将您的机器人限制为仅由单个(或一组受限)租户使用。请在MS Teams 应用清单文件租户限制中查看我的回答。


推荐阅读