我很好奇auth如何适用于推送机制。它需要订户上的端点必须可以通过互联网访问,因此pubsub客户端将验证推送的消息是否确实来自谷歌?或是由订户实施?
如果留给订阅者,建议的方法是什么?
答案 0 :(得分:4)
团队意识到这不是一个理想的解决方案,但是现在,唯一的选择是在推送端点URL中添加一个秘密令牌,如下所述:
https://cloud.google.com/pubsub/faq#security
您还可以定期轮换秘密令牌以获得更好的安全性。当然,您需要安全地保留秘密令牌。
答案 1 :(得分:2)
作为替代方案,我建议如下:
生成密钥。将此密钥存储在发布者和端点上。
将消息推送到队列时,使用HMAC-SHA256和密钥创建消息数据的HMAC。将此HMAC值添加为消息的属性(base64编码)。
在处理程序上接收消息时,使用带有密钥的HMAC-SHA256手动创建消息数据的HMAC,并验证它是否与消息属性中的HMAC匹配。
只要您保密密钥......秘密,并且您的邮件数据每次都是唯一的(如果没有,则添加一个nonce),这将保证邮件是合法的。
答案 2 :(得分:1)
现在,您可以使用前缀 / _ ah / push-handlers / 作为推送端点URL路径。这样,您就可以通过在app.yaml中添加login: admin
来要求管理员登录。
示例: myapp.appspot.com/_ah/push-handlers/myhandler