4

我很好奇 auth 将如何为 Push 机制工作。它需要订阅者上的一个端点,该端点必须可以通过互联网访问,所以 pubsub 客户端是否要验证推送的消息确实来自谷歌?还是留给订户来实施?

如果它由订户决定,有什么建议的方法来实现它?

4

3 回答 3

4

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

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

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

于 2015-07-30T11:25:51.917 回答
2

作为替代方案,我建议以下内容:

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

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

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

只要您保持密钥......秘密,并且您的消息数据每次都是唯一的(如果不是,请添加一个随机数),这将保证消息是合法的。

于 2016-10-19T15:37:20.007 回答
1

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

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

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

于 2016-10-19T16:37:34.770 回答