保护 twilio 传真 mediaUrl

securing twilio fax mediaUrl

我正在使用 Twilio 可编程传真 api 从我的应用程序发送传真消息。 当我提供 public url 且没有任何身份验证作为用于发送传真的 mediaUrl 时,我在发送传真时没有遇到任何问题。 但是当我通过 url 作为发送传真的 mediaUrl 作为发送传真 url 时,传真发送失败。

"status": "failed",

我调试了 mediaUrl 访问的服务器上的代码,发现 Twilio 根本没有发送带有 "Authorization" header.

的请求

As per Twilio documentation,

You may provide a username and password via the following URL format.

https://username:password@www.myserver.com/my_secure_document

Twilio will authenticate to your web server using the provided username and password and will remain logged in for the duration of the call. We highly recommend that you use HTTP Authentication in conjunction with encryption. For more information on Basic and Digest Authentication, refer to your web server documentation.

If you specify a password-protected URL, Twilio will first send a request with no Authorization header. After your server responds with a 401 Unauthorized status code, a WWW-Authenticate header and a realm in the response, Twilio will make the same request with an Authorization header

我提供的 mediaUrl 格式与 Twilio 要求的格式相同。但是传真收到失败的响应。请提供您宝贵的建议,帮助我解决问题。

当 Twilio 未经授权访问 mediaUrl 时,我的服务器发送如下所示的 401 响应 header,

HTTP 响应 header 401

  Status Code: 401 Unauthorized
    Content-Length: 34
    Content-Type: application/xml
    Date: Wed, 30 Aug 2017 12:38:41 GMT
    Server: Apache-Coyote/1.1
    WWW-Authenticate: Basic realm="My Realm"

回应body

<message>Invalid credentials</message>

更新

好消息! Twilio Programmable Fax 中的媒体 URL 现在支持基本身份验证。这已经实施和部署,所以这应该不再是一个问题。

原回答

这里是 Twilio 开发人员布道者。

经过一些内部调查,我发现这是一个已知问题。

它实际上是由您发送的支持票提出的。好消息是,由于这是已知的,它会得到一些关注,团队会在解决后与您联系。

为了以不同的方式回答这个问题,我只使用 Signed URLs on Google Cloud,它提供了一个长令牌,用于授予对特定文件的临时访问权限。您可以将其设置为授予访问权限 10 分钟,这应该足够了。

AWS 似乎提供 similar solution