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