尝试在本地连接到 Chatbot 但出现未经授权的错误

Posted

技术标签:

【中文标题】尝试在本地连接到 Chatbot 但出现未经授权的错误【英文标题】:Try to connect locally to Chatbot but get unauthorized error 【发布时间】:2020-05-01 13:10:48 【问题描述】:

我在这里从 Microsoft 加载了 EchoBot 模板:https://marketplace.visualstudio.com/items?itemName=BotBuilder.botbuilderv4

我开始了一个新项目并尝试在本地运行它。未提供 MicrosoftAppID 或 MicrosoftAppPassword。

然后我加载了最新的 Bot Framework Emulator v4.7

我在本地连接,再次没有应用 ID 或应用密码:

但是当我尝试发送消息时出现未经授权的错误,为什么在本地连接时会出现未经授权的错误?

服务器肯定在本地运行,本地URL正确:

我想问的一个问题是登录依赖于任何第 3 方 URL 调用吗?我公司的安全策略是阻止所有 URL,除非列入白名单,所以如果是这种情况,是否可能阻止身份验证?我要列入白名单的 URL 是什么?

编辑:我在公司网络之外的虚拟机上进行了尝试,它可以工作!所以一定有什么东西被阻塞了。有什么想法吗?

【问题讨论】:

我记得几个月前遇到过这样的问题,但最后我只是使用了我认为的 appid/apppassword。我记得,尝试集成 ngrok 和模拟器可能是问题的一部分,我看到您正在这样做,如果您尝试在本地运行,则根本不需要 ngrok。尝试在模拟器设置中删除它。 嗨 Hilton,我尝试删除 ngrok,结果似乎是一样的,同样的错误 【参考方案1】:

我通过使用公司网络外部的虚拟机解决了这个问题。这不是一个解决方案,但它是一种解决方法。我高度怀疑某些端口被公司防火墙阻止但不确定是什么所以我不确定如何将其列入白名单。

【讨论】:

你能分享一下你的模拟器设置的截图吗?我尝试使用相同的模板,它对我来说效果很好。您的问题似乎与已报告的 GitHub 问题 github.com/microsoft/BotFramework-Emulator/issues/1837 类似 嗯,我不认为模拟器有什么问题,我认为防火墙/域阻止程序有问题,所以我认为它不会有帮助。 模拟器正在尝试将活动发布到您的机器人,然后将未经授权的响应发送回模拟器。当您在公司网络或代理后面时,它确实会阻塞某些端口,从而导致此类错误。您可以使用Fiddler 并通过跟踪来缩小问题范围。 但它在本地盒子上,它不应该去任何地方,除了本地?无论如何没关系,我最终使用了虚拟机。

以上是关于尝试在本地连接到 Chatbot 但出现未经授权的错误的主要内容,如果未能解决你的问题,请参考以下文章

无法将Nexus 4连接到adb:未经授权

WCF 错误 401 未经授权仅在某些电脑上

Web 服务 401:未经授权的错误

HttpResponeMessage 返回 401(未经授权)

Rapidapi & 401 未经授权的响应

Apache HttpClient DigestAuth - 401,未经授权。但是凭证没问题[重复]