【问题标题】:Push mechanism: Auth on webhook endpoint推送机制:在 webhook 端点上进行身份验证
【发布时间】:2015-07-30 05:14:28
【问题描述】:

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

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

【问题讨论】:

    标签: google-cloud-pubsub


    【解决方案1】:

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

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

    您还可以定期轮换秘密令牌以提高安全性。当然,您需要安全地保存秘密令牌。

    【讨论】:

      【解决方案2】:

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

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

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

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

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

      【讨论】:

        【解决方案3】:

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

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

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

        【讨论】:

          猜你喜欢
          • 1970-01-01
          • 1970-01-01
          • 2021-10-23
          • 1970-01-01
          • 1970-01-01
          • 2019-07-13
          • 1970-01-01
          • 2019-06-29
          • 2015-02-11
          相关资源
          最近更新 更多