是否可以通过HTTP请求标头确认机器人的身份?

时间:2018-08-06 19:15:01

标签: azure botframework direct-line-botframework

我正在寻找特定使用者的https://directline.botframework.com代理请求,但只允许他们将代理用于特定机器人:

消费者-> my.proxy.com-> directline.botframework.com

我读了another post ”“您在请求的Authorization标头中指定的直接机密或令牌用于识别应将请求定向到的漫游器。” < / p>

我找不到有关令牌语法的任何文档,但示例似乎遵循一定的模式,即11个字符,后跟句点...:

Authorization: Bearer RCurR_XV9ZA.cwA.BKA.iaJrC8xpy8qbOF5xnR2vtCX7CZj0LdjAPGfiCpg4Fv0y8qbOF5xPGfiCpg4Fv0y8qqbOF5x8qbOF5xn

这些字段中的任何一个(?),例如在第一个期间之前的前11个字符,是我可以用来过滤请求的机器人的唯一标识符?

1 个答案:

答案 0 :(得分:1)

如果解码承载令牌,则可以获取应用程序ID。我刚刚使用jwt.io进行了测试,并能够看到我正确的应用ID。

enter image description here

您可能会找到一个可以用来获取应用程序ID的库,但是我不知道该使用哪个库。如果您可以访问整个请求,则另一种选择是解析机器人ID的活动(根据方向在c#activity.recipient.idactivity.from.id中),并使用此数据以某种方式将其列入白名单。这是一个非常独特的案例,因此我没有任何示例。