无法验证Twilio Authy Webhook回调

问题描述

我正在尝试为authy Onetouch推送身份验证设置Webhooks。我设法成功注册one_touch_request_responded个事件,从订阅调用中保存了Webhook签名密钥,但是我仍然无法验证请求:任何攻击者都可以伪造伪造的请求并轻松绕过2FA检查。

API documentation令我感到困惑,因为回调请求与提到的格式不匹配(特别是它们没有X-authy-Signature头),并且只有以下头: / p>

{
  host: 'XXX.ngrok.io','user-agent': 'authy-api-webhooks/1.0','content-length': '2211','accept-encoding': 'gzip','content-type': 'application/json','x-forwarded-for': '3.89.35.175','x-forwarded-proto': 'http'
}

我还尝试验证JWT令牌的签名,但仍然无济于事(收到POST请求:{"body":"a_jwt_token"}):我总是得到无效的签名(与https://jwt.io/相同) )。

const jwt = require("jsonwebtoken");
jwt.verify(req.body.body,Buffer.from(MY_SECRET_KEY,"base64"),{ algorithm: ["HS256"] });

检查Webhook POST回调的真实性的正确方法是什么?

谢谢!

解决方法

这里是Twilio开发人员的传播者。

在我看来,您似乎已经找到了可以订阅的Authy webhooks会话,以获取有关用户使用Authy API的各个方面的最新信息。

为了获取OneTouch推送通知的Webhook,您应该在Authy应用程序的推送通知设置下的Twilio控制台中设置Webhook URL。

Navigate to the Twilio console,then to the Authy section,choose your Authy app and then open the Push Authentication settings. In there you will find an input for the webhook Endpoint/URL,this is where you set your webhook URL.

一旦设置了Webhook URL,您将发现Webhook事件进入您的应用程序以进行推送身份验证批准和拒绝。这些请求还将带有X-Authy-Signature-NonceX-Authy-Signature标头,您将可以re-create the signature using the method explained here

对不起,我感到困惑,希望可以为您解决。

相关问答

Selenium Web驱动程序和Java。元素在(x,y)点处不可单击。其...
Python-如何使用点“。” 访问字典成员?
Java 字符串是不可变的。到底是什么意思?
Java中的“ final”关键字如何工作?(我仍然可以修改对象。...
“loop:”在Java代码中。这是什么,为什么要编译?
java.lang.ClassNotFoundException:sun.jdbc.odbc.JdbcOdbc...