Облачная функция / Безсерверный клиент OAuth2 - PullRequest
0 голосов
/ 19 октября 2019

Я новичок в OAuth2 и облачных функциях / без сервера.

Поэтому мне было интересно, имеет ли смысл создавать облачные функции для обработки запросов OAuth2.

Моя идея:

  1. Пользователь отправляет запрос на авторизацию и API-шлюз (на мой взгляд, чтобы предотвратить злоупотребление облачными функциями или как это можно предотвратить? Cloudflare?)
  2. Шлюз перенаправляет запрос наcloud-function
  3. Cloud-function хранит аутентификацию пользователя в БД
  4. Пользователь теперь аутентифицирован.
  5. Теперь аутентифицированный пользователь может запрашивать фактические данные, такие как профиль, через другое облако. функции.
  6. Ответ пользователю с данными.

Это правильное понимание того, как работает OAuth? Если да, имеет ли это смысл, или обычный сервер будет дешевле обрабатывать OAuth?

1 Ответ

0 голосов
/ 22 октября 2019

Да, то, что вы описали, должно работать. Обратите внимание, что вам нужно будет защитить ваши облачные функции и, кроме OAuth, не забудьте настроить свой слой авторизации от функции к функции (как я понял, вы будете использовать больше облачных функций). Я думаю, что этот процесс может быть болезненным, так как вам нужно будет настроить его для каждой функции. Здесь вы можете найти более подробную информацию об этом.

Хотя то, что вы описали, должно работать, лично я бы не стал это реализовывать, и я бы пошел на архитектуру Ambassador с сервисом, работающим на Cloud Run , скажем, который также включает в себя уровень безопасности. Я бы не стал выбирать ваш архитектурный план по нескольким причинам:

1) Я думаю, что будет сложнее сконфигурировать в основном потому, что я говорил раньше.

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

3) Обслуживание и отладка могут быть немного сложнее в такой «цепной» системе, как эта.

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

В заключение я думаю, что это сработает, но я бы не стал делать это так.

...