Как отправлять запросы в Cloud Run только из приложения? - PullRequest
0 голосов
/ 03 апреля 2020

Основанное на подписке приложение iOS, которое я создаю, использует службу Cloud Run, вызываемую по запросу HTTPS. Как я могу убедиться, что запрос может быть вызван только владельцами приложения (из приложения)?

Я смотрел на аутентификацию входа в Google, но не думаю, что она применима в моем случае доступ должен иметь только тот, кто подписан на приложение, а не только те, кто имеет учетную запись Gmail.

Ответы [ 2 ]

1 голос
/ 03 апреля 2020

Я думаю, что без входа в Google ваш вопрос не имеет ничего общего с Cloud Run и может быть обобщен следующим образом:

Как отправлять запросы в бэкэнд-приложение только со своего мобильного телефона app?

Так что я отвечу.

Вы обнаружите, что вам нужна какая-то форма «аутентификации», чтобы доказать, что вы используете мобильное приложение как «пользователь». Для этого вам потребуется форма для входа .

. Вы можете попытаться отправить секрет (например, токен или закрытый ключ) в приложение и использовать его для аутентификации, но это будет восприимчиво к:

  1. эксфильтрации личных данных из комплекта приложений посредством обратного инжиниринга
  2. применения атаки "человек посередине" к запросу HTTPS (и, следовательно, токен), доверяя root CA на устройстве и используя, например, mitmproxy для расшифровки запроса в виде открытого текста.

В действительности, нет никакой возможности полностью защитить iOS / Android < => Бэкэнд связи это. Даже самые крупные приложения, такие как Twitter, Instagram и c, постоянно пересматривают свои API-интерфейсы и вызываются из не iOS / Android клиентов, поскольку запросы могут быть подделаны.


Если вы хотите аутентифицировать существующих пользователей, вы должны выяснить, как эти люди входят в ваше приложение. Это может быть простой username:password в Authentication: Basic [...] заголовке или что-то более сложное, например, OAuth2, которое такие приложения, как Facebook, Twitter, реализуют под прикрытием для своих мобильных приложений.

Затем вы можете проверить этот заголовок Authentication в код вашего приложения Cloud Run самостоятельно.

Опять же, я не думаю, что это проблема, указанная c для Cloud Run или любого облачного провайдера.

0 голосов
/ 04 апреля 2020

Если ваша цель состоит в том, чтобы ваш API вызывался только тогда, когда ваши пользователи прошли аутентификацию в вашем приложении, я бы рекомендовал реализовать одно из двух решений , описанных на этой странице : Использование Google Sign- в или Аутентификация Firebase

...