推送机制:在webhook端点上进行身份验证

时间:2015-07-30 05:14:28

标签: google-cloud-pubsub

我很好奇auth如何适用于推送机制。它需要订户上的端点必须可以通过互联网访问,因此pubsub客户端将验证推送的消息是否确实来自谷歌?或是由订户实施?

如果留给订阅者,建议的方法是什么?

3 个答案:

答案 0 :(得分:4)

团队意识到这不是一个理想的解决方案,但是现在,唯一的选择是在推送端点URL中添加一个秘密令牌,如下所述:

https://cloud.google.com/pubsub/faq#security

您还可以定期轮换秘密令牌以获得更好的安全性。当然,您需要安全地保留秘密令牌。

答案 1 :(得分:2)

作为替代方案,我建议如下:

  1. 生成密钥。将此密钥存储在发布者和端点上。

  2. 将消息推送到队列时,使用HMAC-SHA256和密钥创建消息数据的HMAC。将此HMAC值添加为消息的属性(base64编码)。

  3. 在处理程序上接收消息时,使用带有密钥的HMAC-SHA256手动创建消息数据的HMAC,并验证它是否与消息属性中的HMAC匹配。

  4. 只要您保密密钥......秘密,并且您的邮件数据每次都是唯一的(如果没有,则添加一个nonce),这将保证邮件是合法的。

答案 2 :(得分:1)

现在,您可以使用前缀 / _ ah / push-handlers / 作为推送端点URL路径。这样,您就可以通过在app.yaml中添加login: admin来要求管理员登录。

示例: myapp.appspot.com/_ah/push-handlers/myhandler

来自https://cloud.google.com/pubsub/docs/advanced