【问题标题】:Azure bot interacting with authenticated messaging endpointAzure 机器人与经过身份验证的消息传递端点交互
【发布时间】:2020-03-06 17:55:38
【问题描述】:

我正在为 Microsoft 团队开发一个 Azure 机器人,使用 Azure 机器人服务,机器人注册通道设置。消息传递终结点是使用 AAD 登录进行身份验证的应用服务。有人可以帮我理解如何从机器人调用这个经过身份验证的端点吗?目前,我正在 Webchat 上对其进行测试,并收到 401 未经授权的错误。我尝试按照this 在机器人中配置 Oauth 设置,但仍然得到 401。 有人可以指出这里需要的任何概念和文档。

【问题讨论】:

  • 在.env中添加connectionName后,您是否在模拟器中测试了机器人?如果有效,请检查您是否在 Azure Bot 服务中添加了相同的内容。
  • 为什么不能直接删除 AAD 身份验证?我不知道如何使用 Microsoft 机器人所依赖的 Web 请求来通过这种安全性。

标签: azure oauth-2.0 botframework azure-bot-service


【解决方案1】:

无需开启应用服务认证。只需关注this article,即可通过 Azure Bot 服务向您的机器人添加身份验证。然后在使用机器人时需要登录。

参考:

Azure AD integration with Bot Framework / teams

【讨论】:

  • 嗨托尼,感谢您的回答,我了解到 ..api/message 端点必须是公共的,所以我的问题特别是如何保护这个端点,我们可以创建一个带有 api/messages 端点的反向代理,并且有一个只允许来自 botframework 的流量的防火墙?
【解决方案2】:

Microsoft Teams 在 OAuth 方面的行为与其他渠道略有不同,需要进行一些更改才能正确实施身份验证。 特别是 Invoke Activity 被发送到 bot,而不是其他通道使用的 Event Activity。 如果正在使用 OAuthPrompt,则必须将此 Invoke Activity 转发到对话框。这是通过继承 TeamsActivityHandler 并实现 handleTeamsSigninVerifyState 来完成的。最好使用 46.teams-auth 示例在 Teams 中设置 OAuth。

希望这会有所帮助。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2019-02-10
    • 2021-05-26
    • 2020-08-02
    • 1970-01-01
    • 1970-01-01
    • 2021-12-03
    • 2022-11-01
    相关资源
    最近更新 更多