1

我们正在使用 BotFramework Composer 来创建机器人。这些机器人应该从后端 REST 服务获取信息,我们需要知道哪个用户正在提交数据请求。我们目前正在使用{turn.activity.from.id}获取 Teams 用户的 ID,并在“发送 HTTP 请求”操作中将其发送到特殊的 HTTP 标头中。然后,我们将此 ID 映射到我们的内部用户。

当然,我们知道这根本不安全,因为任何知道这一点的人都可以获取用户的 id 并将其发送到我们的服务。我们目前正在考虑在 Bot 中生成一个短期 jwt 令牌以发送到我们的应用程序。但是,我们看不到在 Bot Framework Composer 本身中实现此令牌生成的直接方法。

此外,我们不想使用 OAuth,因为我们不希望用户必须通过机器人登录。

有没有办法使用 C# 或 js 实现自定义令牌生成并将其分配给对话框变量以在“发送 HTTP 请求”操作中使用?

4

2 回答 2

1

文档讨论如何在 Composer 中实现 HTTP 请求。前半部分的重点是为 OAuth 创建登录,我知道这不是您的重点,因此请看后半部分。如果您设置了一个可以为您生成令牌的简单服务器,那么您可以使用所述方法从 Composer 向它发出请求。

由于链接可能会中断并且文档可能会更改(并且 Composer 仍处于预览状态),我建议将文档保存在某处并经常检查是否有任何更新。

我自己在 Composer 中使用过 HTTP 请求,所以我知道这对你有用。

希望有帮助!

于 2020-02-14T03:09:43.120 回答
0

您可以创建自定义操作或包组件,并在那里创建任何用于 JWT 生成的 c# 方法。这将使它保持在机器人本地。

https://docs.microsoft.com/en-us/composer/how-to-create-custom-actions

于 2021-05-31T09:41:32.700 回答