Как проверить, что Google PubSub попадает на мою конечную точку, а не на другого участника? - PullRequest
0 голосов
/ 13 ноября 2018

У меня есть полнофункциональная конечная точка, которая будет получать запрос POST от подписки PubSub, когда в почтовом ящике пользователя Gmail обнаружено изменение. Внутри конечной точки я могу успешно извлечь все, что мне нужно для моих целей.

Проблема в том, что я понятия не имею, кто на самом деле поражает мою конечную точку. Плохой актер может передать мне ту же полезную нагрузку, что и Gmail.

Есть ли способ проверить, что полезная нагрузка, которую я получаю, на самом деле от Google / Gmail / PubSub?

На стороне Gmail: Похоже, что полезная нагрузка, отправленная на мою конечную точку, не может быть изменена и всегда будет иметь форму, описанную здесь https://developers.google.com/gmail/api/guides/push

На стороне PubSub: Вы можете создать свою собственную тему и добавить пары ключ / значение в качестве пользовательских атрибутов, но, похоже, я не смогу изменить полезную нагрузку, которую Gmail публикует в моей теме. https://cloud.google.com/pubsub/docs/publisher

Любое понимание будет высоко ценится спасибо!

1 Ответ

0 голосов
/ 13 ноября 2018

Предлагаемый способ сделать это - включить секрет в качестве параметра url для вашей конечной точки.Затем вы можете отклонить любые URL, которые не содержат этот секрет.https://cloud.google.com/pubsub/docs/faq#security

Это можно настроить как часть обычной обычной конечной точки при настройке принудительной подписки.

Если вы хотите добавить дополнительные метаданные к предоставленным сообщениям Gmail, вы всегда можетенастройте задание потока данных в облаке или функцию облака в качестве подписчика непосредственно из темы gmail и повторно опубликуйте вторую тему, из которой будет считываться ваша внешняя конечная точка.

-Daniel

...