是否可以通过 HTTP 请求 headers 确认机器人的身份?
Is it possible to confirm the identity of a bot via HTTP request headers?
我正在寻找针对特定消费者对 https://directline.botframework.com 的代理请求,但只允许他们对特定机器人使用代理:
消费者 -> my.proxy.com -> directline.botframework.com
我阅读了"the Direct Line secret or token that you specify in the Authorization header of the request is used to identify the bot that the request should be directed to"
我找不到关于标记语法的任何文档,但示例似乎遵循 11 个字符后跟句点的特定模式...:
Authorization: Bearer RCurR_XV9ZA.cwA.BKA.iaJrC8xpy8qbOF5xnR2vtCX7CZj0LdjAPGfiCpg4Fv0y8qbOF5xPGfiCpg4Fv0y8qqbOF5x8qbOF5xn
这些字段中的任何一个(?),例如第一个句点之前的前 11 个字符,我可以用来过滤请求的机器人的唯一标识符?
如果您解码不记名令牌,您可以获得应用程序 ID。我刚刚用 jwt.io 测试了这个并且能够看到我正确的应用程序 ID。
您或许可以找到一个库,您可以使用它来为您获取应用程序 ID,但我不知道其中一个。如果您有权访问整个请求,另一种选择是解析机器人 ID 的 activity(在 c# activity.recipient.id
或 activity.from.id
中,具体取决于方向)并使用此数据以某种方式列入白名单。这是一个相当独特的案例,所以我没有任何这样的例子。
我正在寻找针对特定消费者对 https://directline.botframework.com 的代理请求,但只允许他们对特定机器人使用代理:
消费者 -> my.proxy.com -> directline.botframework.com
我阅读了
我找不到关于标记语法的任何文档,但示例似乎遵循 11 个字符后跟句点的特定模式...:
Authorization: Bearer RCurR_XV9ZA.cwA.BKA.iaJrC8xpy8qbOF5xnR2vtCX7CZj0LdjAPGfiCpg4Fv0y8qbOF5xPGfiCpg4Fv0y8qqbOF5x8qbOF5xn
这些字段中的任何一个(?),例如第一个句点之前的前 11 个字符,我可以用来过滤请求的机器人的唯一标识符?
如果您解码不记名令牌,您可以获得应用程序 ID。我刚刚用 jwt.io 测试了这个并且能够看到我正确的应用程序 ID。
您或许可以找到一个库,您可以使用它来为您获取应用程序 ID,但我不知道其中一个。如果您有权访问整个请求,另一种选择是解析机器人 ID 的 activity(在 c# activity.recipient.id
或 activity.from.id
中,具体取决于方向)并使用此数据以某种方式列入白名单。这是一个相当独特的案例,所以我没有任何这样的例子。