Введение в API аутентификации администратора

Firebase Admin SDK позволяет интегрировать ваши собственные серверы с аутентификацией Firebase. Вы можете использовать Firebase Admin SDK для управления пользователями или токенами аутентификации. Есть ряд причин, по которым вы захотите это сделать:

Управление пользователями

Не всегда удобно посещать консоль Firebase для управления пользователями Firebase. API управления пользователями администратора обеспечивает программный доступ к тем же пользователям. Он даже позволяет вам делать то, что консоль Firebase не может, например, получать полные данные пользователя и изменять пароль пользователя, адрес электронной почты или номер телефона.

Пользовательская аутентификация

Вы можете интегрировать внешнюю пользовательскую систему с Firebase. Например, у вас может уже быть существующая база данных пользователей или вы можете захотеть интегрироваться со сторонним поставщиком удостоверений, который Firebase Authentication изначально не поддерживает.

Для этого вы можете создавать собственные токены с произвольными утверждениями, идентифицирующими пользователя. Эти пользовательские токены затем можно использовать для входа в службу аутентификации Firebase в клиентском приложении и принятия удостоверения, описанного в утверждениях токена. Этот идентификатор затем будет использоваться при доступе к другим сервисам Firebase, таким как Cloud Storage.

Проверка личности

Аутентификация Firebase в основном используется для идентификации пользователей вашего приложения, чтобы ограничить доступ к другим сервисам, таким как Cloud Storage. Вы также можете использовать сервис для идентификации этих пользователей на вашем собственном сервере. Это позволяет вам безопасно выполнять логику на стороне сервера от имени пользователей, которые вошли в систему с помощью аутентификации Firebase.

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

Firebase Admin SDK предоставляет методы для выполнения описанных выше задач аутентификации, позволяя вам управлять своими пользователями, создавать собственные токены и проверять токены идентификаторов.

Пользовательские утверждения пользователей

В некоторых случаях вам может потребоваться реализовать детальный контроль доступа для пользователей, уже вошедших в систему с помощью одного из поддерживаемых поставщиков аутентификации Firebase, таких как электронная почта/пароль, Google, Facebook, телефон и т. д. Комбинация пользовательских утверждений пользователей и безопасности приложений. Правила предоставляют такую ​​возможность. Например, пользователь, вошедший в систему с помощью поставщика электронной почты и пароля для аутентификации 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 есть встроенный метод проверки токенов идентификатора. Вы также можете программно проверять токены идентификаторов на любом языке, используя сторонние библиотеки JWT. Дополнительные сведения и примеры кода о процессе проверки токена идентификатора см. в разделе Проверка токенов идентификатора.

Проверка токенов идентификатора

Пользовательские претензии пользователей

Firebase Admin SDK позволяет вам устанавливать собственные атрибуты для учетных записей пользователей. С помощью настраиваемых утверждений пользователей вы можете предоставлять пользователям разные уровни доступа (роли), которые затем применяются в правилах безопасности приложения.

После того как пользовательские утверждения изменяются для пользователя с помощью Firebase Admin SDK, они распространяются среди аутентифицированных пользователей на стороне клиента через их идентификационные токены. Токен идентификатора — это надежный механизм доставки этих пользовательских утверждений, и при любом доступе с проверкой подлинности необходимо проверять токен идентификатора перед обработкой связанного запроса.

Управление доступом с помощью пользовательских утверждений