首页 > 解决方案 > 如何在 SharePoint Online 中安全地集成 WebChat/Directline

问题描述

尝试在 SharePoint 在线页面上部署使用 MS bot framework v4.0 开发的机器人。用户需要登录 SharePoint 才能访问 bot,因此无法在 bot 级别添加身份验证,因为用户必须登录两次,这将导致用户体验不佳。

集成是在通过使用网络聊天通道“安全密钥”调用网络聊天机器人连接器 API 获取的令牌的帮助下完成的。遵循文档中的选项 1 。

问题

SharePoint 作为客户端应用程序构成了通道“安全密钥”暴露的威胁,即它可以在浏览器的开发人员工具中获取,并可用于将我们的机器人集成到他们的网站上。

我已经试过了

  1. 缩小 javascript 并将其添加到 Web 部件,这使得阅读“安全密钥”变得困难,但并非不可能。
  2. Single Sigh-On(SSO),SSO 在机器人级别没有 OAutCard 是不可能的,所以尽量避免它。
  3. 创建一个触发器/函数应用程序以隐藏 bot 连接器休息调用并仅公开令牌,但它需要一些额外的资源成本。
  4. 我没有找到将 SharePoint 登录的用户上下文或令牌从 SharePoint 传递给机器人的方法。

期待

  1. 保护通道“安全密钥”,使其无法在开发人员工具中访问。或者
  2. 找到一种将 SharePoint 登录的用户上下文或令牌从 SharePoint 传递到机器人并在机器人端进行验证的方法。或者
  3. 通过在线 SharePoint 中的免费触发器隐藏对机器人连接器 API 的其余调用。

也欢迎任何其他解决方案或建议。

标签: sharepointbotframeworksharepoint-onlinedirect-line-botframeworkweb-chat

解决方案


无法在 SPFx 中获取访问令牌。我在 SPO/SPFx 中找到的唯一解决方案是利用 SPFx 为机器人提供用户上下文,并通过机器人中的仅应用程序图形应用程序进行调用。您可以(理论上)添加代码逻辑以使用该上下文(用户名、站点名称、Web 名称)限制对图形/SharePoint 的调用等。


推荐阅读