Мы пишем некоторые API, использующие функции Firebase, и хотели бы, чтобы они были безопасными.
Ниже приведены шаги для обеспечения процесса аутентификации. Будут ли какие-либо преимущества в требовании, чтобы каждый вызов API включал idTokan в заголовки, и будет ли это лучше, чем использование простого общего ключа, хранящегося где-то?
Наш текущий дизайн приведен ниже:
- Создание пользователя вручную на серверной части и предоставление электронной почты / пароля клиенту, выполняющему вызовы API.
- Требование передачи им электронной почты / передачи в качестве параметров конечной точке / auth, и мы возвращаем им Firebase idTokan.
- Требуя, чтобы они добавили этот idToken в заголовок любого последующего вызова, пока не истечет срок его действия, им нужно повторить шаг 2, затем
Чтобы получить idToken на сервере, мы быиспользуя Firebase Auth REST API для аутентификации пользователя по электронной почте / паролю и возврата им idToken.
Есть ли какие-либо преимущества в этом потоке по сравнению с простым общим ключом? Похоже, что если злоумышленник может получить доступ к электронной почте / пароль, он все равно может пройти проверку подлинности.
Изучил это для ограничения IP-адресов, это для проверки idTokens, и прочитал немало статей, но все еще озадачен!