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