如何验证Google PubSub是否到达了我的终点,而不是其他演员

时间:2018-11-13 17:43:16

标签: gmail-api google-cloud-pubsub

我有一个功能齐全的终结点,当在用户的Gmail收件箱中检测到更改时,它将接收来自PubSub订阅的POST请求。在端点内部,我可以成功提取我所需的所有内容。

问题是我不知道实际上是谁在打我的终点。一个坏演员可能会给我传递与Gmail相同的有效负载。

我是否可以验证我收到的有效载荷是否实际上来自Google / Gmail / PubSub?

在Gmail方面: 看来,发送到我的端点的有效负载无法更改,并且将始终采用以下格式: https://developers.google.com/gmail/api/guides/push

在PubSub方面: 您可以创建自己的主题,并将键/值对作为自定义属性添加到该主题,但是看来我无法修改Gmail发布到该主题的有效负载。 https://cloud.google.com/pubsub/docs/publisher

任何见识将不胜感激,谢谢!

1 个答案:

答案 0 :(得分:1)

建议的方法是将秘密作为端点的url参数。然后,您可以拒绝任何不包含此秘密的网址。 https://cloud.google.com/pubsub/docs/faq#security

可以在设置推送订阅时将其配置为普通推送端点的一部分。

如果您希望向所提供的gmail消息中添加额外的元数据,则始终可以直接从gmail主题中直接将云数据流作业或云功能设置为订户,然后重新发布外部端点将从中读取的第二个主题

-丹尼尔