Firebase Admin SDK позволяет интегрировать ваши собственные серверы с Firebase Authentication. Вы можете использовать Firebase Admin SDK для управления пользователями или маркерами аутентификации. Есть несколько причин, по которым вы хотели бы это сделать:
Управление пользователями
Не всегда удобно посещать консоль Firebase для управления пользователями Firebase. API управления пользователями-администраторами предоставляет программный доступ к тем же пользователям. Он даже позволяет вам делать то, что консоль Firebase не может, например, получать полные данные пользователя и изменять пароль пользователя, адрес электронной почты или номер телефона.
Пользовательская аутентификация
Вы можете интегрировать внешнюю пользовательскую систему с Firebase. Например, у вас может быть уже существующая база данных пользователей или вы можете захотеть интегрироваться со сторонним поставщиком удостоверений, который Firebase Authentication изначально не поддерживает.
Для этого вы можете создавать собственные токены с произвольными утверждениями, идентифицирующими пользователя. Затем эти пользовательские токены можно использовать для входа в службу аутентификации Firebase в клиентском приложении и принятия удостоверения, описанного в утверждениях токена. Затем этот идентификатор будет использоваться при доступе к другим службам Firebase, например к облачному хранилищу.
Проверка личности
Аутентификация Firebase в основном используется для идентификации пользователей вашего приложения, чтобы ограничить доступ к другим службам, таким как облачное хранилище. Вы также можете использовать сервис для идентификации этих пользователей на вашем собственном сервере. Это позволяет безопасно выполнять логику на стороне сервера от имени пользователей, которые вошли в систему с помощью аутентификации Firebase.
Для этого вы можете получить токен идентификатора из клиентского приложения, вошедшего в систему с аутентификацией Firebase, и включить токен в запрос к вашему серверу. Затем ваш сервер проверяет маркер идентификатора и извлекает утверждения, которые идентифицируют пользователя (включая его uid
, поставщика удостоверений, с которым он вошел в систему, и т. д.). Затем эта идентификационная информация может использоваться вашим сервером для выполнения действий от имени пользователя.
Firebase Admin SDK предоставляет методы для выполнения описанных выше задач аутентификации, позволяя вам управлять своими пользователями, создавать собственные токены и проверять токены ID.
Пользовательские утверждения пользователей
В некоторых случаях вы можете захотеть внедрить детальный контроль доступа для пользователей, которые уже вошли в систему с помощью одного из поддерживаемых поставщиков аутентификации Firebase, таких как электронная почта/пароль, Google, Facebook, телефон и т. д. Сочетание пользовательских утверждений пользователей и безопасности приложений. rules предоставляет эту возможность. Например, пользователь, вошедший в систему с помощью поставщика электронной почты и пароля для аутентификации Firebase, может иметь контроль доступа, определенный с помощью настраиваемых утверждений.
Управление пользователями
Firebase Admin SDK предоставляет API для управления пользователями Firebase с повышенными привилегиями. API управления пользователями администратора дает вам возможность программным образом извлекать, создавать, обновлять и удалять пользователей, не требуя существующих учетных данных пользователя и не беспокоясь об ограничении скорости на стороне клиента.
Управление пользователямиСоздание пользовательского токена
Основное назначение создания пользовательских токенов — позволить пользователям проходить аутентификацию с помощью внешнего или устаревшего механизма аутентификации. Это может быть тот, которым вы управляете, например, ваш сервер LDAP, или сторонний поставщик OAuth, который Firebase изначально не поддерживает, например Instagram или LinkedIn.
Firebase Admin SDK имеет встроенный метод для создания пользовательских токенов. Вы также можете программно создавать собственные токены на любом языке, используя сторонние библиотеки JWT.
Ваш сервер должен создать собственный токен с уникальным идентификатором ( uid
) и передать этот токен клиентскому приложению, которое будет использовать его для входа в Firebase. См. раздел Создание настраиваемых токенов для примеров кода и дополнительные сведения о процессе создания настраиваемых токенов.
Создание пользовательских токенов
Проверка идентификатора токена
Если ваше клиентское приложение Firebase взаимодействует с вашим внутренним сервером, вам может потребоваться идентифицировать текущего пользователя, выполнившего вход на вашем сервере, чтобы вы могли выполнять логику на стороне сервера от его имени. Вы можете сделать это безопасно, используя токены идентификатора, которые создаются Firebase, когда пользователь входит в приложение Firebase. Идентификационные токены соответствуют спецификации OpenID Connect и содержат данные для идентификации пользователя, а также некоторую другую информацию, связанную с профилем и аутентификацией. Вы можете отправлять, проверять и проверять эти токены из собственных серверных частей. Это позволяет безопасно идентифицировать пользователя, выполнившего вход в систему, и авторизовать его в собственных внутренних ресурсах.
Firebase Admin SDK имеет встроенный метод проверки токенов ID. Вы также можете программно проверять токены идентификаторов на любом языке, используя сторонние библиотеки JWT. Дополнительные сведения и примеры кода о процессе проверки идентификатора токена см. в разделе Проверка токенов идентификатора.
Подтвердить идентификационные токены
Пользовательские претензии
Firebase Admin SDK позволяет устанавливать пользовательские атрибуты для учетных записей пользователей. С помощью настраиваемых утверждений пользователей вы можете предоставлять пользователям разные уровни доступа (роли), которые затем применяются в правилах безопасности приложения.
После изменения пользовательских утверждений для пользователя с помощью Firebase Admin SDK они распространяются на аутентифицированных пользователей на стороне клиента с помощью их токенов идентификаторов. Идентификационный токен — это надежный механизм для доставки этих настраиваемых утверждений, и любой аутентифицированный доступ должен проверять идентификатор идентификатора перед обработкой связанного запроса.
Управление доступом с помощью настраиваемых утверждений