AAD阻止机器人

时间:2018-08-20 08:49:11

标签: c# azure azure-active-directory botframework

我正在Microsoft BotFramework中实现一个简单的机器人。我已将其部署在Azure上。由于多种原因,我希望使用AAD身份验证来托管该机器人的应用程序服务。但是,这样做似乎使机器人无法使用。


这是我的上下文

我有机器人-我们称其为 ChatBot 。我有我的应用服务; 聊天机器人

该应用程序通过Visual Studio Teams Services Git使用“构建和发布”成功进行了部署。

我修改了我的“ default.htm”文件,以使用以下脚本在网页上显示我的机器人:

<span class="skype-button bubble" data-bot-id="MyBotID" data-color="#ffffff"></span>
<span class="skype-chat" data-bot-id="MyBotID" data-color-message="#ffffff" data-show-header="true" data-can-upload-file="false"></span>

此内容取自Skype for Developers,且BotID已修改。

未为聊天机器人服务启用AAD,我可以与我的Azure网站上的嵌入式聊天机器人进行通信,这与预期的一样。但是,当我启用AAD时,系统会要求我登录(正如我期望的那样)。网站加载后,该漫游器会正常显示。然后,聊天窗口会加载我分配给Azure上的bot的图标,并在聊天窗口标题中显示bot的名称。但是,当我与漫游器聊天时,它显示“漫游器正在响应”消息,然后再也没有收到消息。

这很奇怪,因为加载图标+标题似乎暗示已建立连接,但是它无法接收来自用户的消息(或者可能接收但无法发送?)。当我再次为应用程序服务禁用AAD时,我可以得到bot响应。因此,与AAD有关的事情禁止了部分通信。

很抱歉,但是我错过了什么吗?为应用程序服务启用AAD是否会对嵌入式脚本或与消息传递终结点的通信产生影响?

谢谢。

编辑:我想澄清一下,在测试之后,我可以确认我无法发送消息:Azure中的“在Web聊天中测试”选项给我一个“错误-重试? '当我尝试发送消息时出现消息,而我的频道的“最近的问题”报告了一个数字错误,提示:

  

将此消息发送到您的机器人时出错:HTTP状态代码   未经授权

我显然得到了401,因为尽管应用程序服务已明确进行了身份验证,但AAD并未对机器人进行身份验证。为什么是这样?

0 个答案:

没有答案