如何使用带有机器人框架的自定义身份验证服务器?

How to using custom authenticate server with bot framework?

我正在创建一个 运行 在电报频道上的机器人。当用户与机器人聊天时,它需要知道谁在聊天。所以他们必须在我的服务器上进行身份验证。

我想机器人会发送一个按钮,该按钮具有我的身份验证端点的 link(例如:https://localhost:8080/auth?code=abcd123a)。用户单击按钮,然后在用户登录的浏览器中打开 link。Bot 将知道用户身份,因为 Bot 和服务器使用相同的数据库。但是机器人如何知道用户何时点击 link 并通过身份验证?

这种模式是否有效(关于延迟或UI)?

您可以 add authentication to your bot via Azure Bot Service 通过 OAuth 身份提供商。您的身份验证端点是否支持 OAuth?在这种情况下,您的流程将是:

  1. Bot 发送 OAuth 卡,重定向到您的身份验证端点。
  2. 用户登录,OAuth 服务器重定向到机器人服务令牌端点。
  3. 机器人服务检索令牌并处理令牌生命周期。
  4. Bot 使用令牌检索 activity 并可以使用它进行身份验证。

Read more about the Bot Framework Token Service.

Azure Bot 服务负责 OAuth 控制器和登录链接,存储目标客户端 ID 和密码,并执行用户令牌管理。否则,您将需要在自己托管的 OAuth 控制器中自行完成所有这些开销 + 管理令牌生命周期。