2017-04-11 30 views
0

我想用“https://webchat.botframework.com/embed/QuizHS?s=YOUR_SECRET_HERE”将它与Web应用程序集成。 但是,我希望通过将令牌传递给它来保护会话,因为密钥在查询字符串中,所以没有人可以直接复制上面的链接并将其用于任何其他应用程序,因为此数据包含机密数据。如何保护我的Microsoft博特框架iframe的网上聊天网址

+0

如果您可以通过Web应用程序进行服务器调用,则可以通过向“https://webchat.botframework.com/api/tokens”发出GET请求来请求令牌,并将您的Web聊天秘密授权标题。然后你可以在你的网络聊天网址的查询字符串中使用“t =”而不是“s =”并传递获得的令牌。请参阅https://docs.botframework.com/en-us/support/embed-chat-c​​ontrol2/#option-1---keep-your-secret-hidden-exchange-your-secret-for-a-token-并生成嵌入以获取更多细节。 – raj

+0

使用[链接](https://docs.botframework.com/en-us/support/embed-chat-c​​ontrol2/),我能够生成令牌,但我需要再次发送此令牌作为查询字符串参数安全。我们不能隐藏用户,仍然使用网聊网址吗? –

+0

谢谢拉杰,我只是这么做的。与此同时,我发送带有令牌的网络聊天网址到我的手机,并且我从手机和笔记本上打开了该链接。它在两个位置都打开并且共享数据。这是安全问题。我不希望其他人只通过特定的应用程序直接使用链接。 –

回答

0

这是由丹·德里斯科尔这里广泛回答:https://github.com/Microsoft/BotFramework-WebChat/issues/428

为了这个讨论的目的,我们要处理秘密和 令牌是一样的。如果您想要 ,我们可以稍后详细介绍。我现在将它们称为“秘密/标记”。

要访问的谈话,你需要秘密/令牌和对话 ID。这些值有时会粘在一起,有时会分开变量。有时他们在URL中,有时他们被存储在JavaScript中的内存中。这些与存储在用户的Cookie中的用户令牌类似。

在所有情况下,这些值都坐在自己 自己的计算机的用户访问。他们可以阅读他们自己的URL,他们可以阅读他们自己的 JavaScript变量状态,并且他们可以读取他们自己的cookie。

如果他们发送任何信息给别人,那个人可以 模仿他们。如果我的银行通过电子邮件将密码重置链接发送给我,并且我与其他人共享该密码,那么此人可以重置我的帐户 密码并登录到我的帐户。

我们的iFrame使用URL来传递这些参数,因为这是在许多情况下,适当的 级别的安全性。 (你曾经访问过的网站, 人工提取的URL的iframe,把它交给别人,并 期待您的会话​​保持私有吗?也许不是。)

如果你想额外的安全性,你可以跳过iFrame并在JS或cookie中发送您自己的秘密/令牌。你的JS可以解压并将其发送到Web Chat JS对象。一旦Web Chat具有秘密/令牌, 专门使用HTTP授权标头将这些值发送到Direct Line服务的 。