Save the date - Google I/O returns May 18-20. Register to get the most out of the digital experience: Build your schedule, reserve space, participate in Q&As, earn Google Developer profile badges, and more. Register now
Эта страница переведена с помощью Cloud Translation API.
Switch to English

Введение в Admin Auth API

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

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

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

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

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

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

Подтверждение личности

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

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

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

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

В некоторых случаях вам может потребоваться реализовать детальный контроль доступа для пользователей, уже вошедших в систему с помощью одного из поддерживаемых поставщиков аутентификации Firebase, таких как электронная почта / пароль, Google, Facebook, телефон и т.д. rules предоставляет такую ​​возможность. Например, пользователь, выполнивший вход с помощью поставщика электронной почты и пароля для аутентификации Firebase, может иметь управление доступом, определяемое с помощью настраиваемых утверждений.

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

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

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

Создание собственного токена

Основное использование для создания пользовательских токенов - позволить пользователям аутентифицироваться с помощью внешнего или устаревшего механизма аутентификации. Это может быть тот, который вы контролируете, например ваш LDAP-сервер, или сторонний поставщик OAuth, который Firebase изначально не поддерживает, например Instagram или LinkedIn.

В Firebase Admin SDK есть встроенный метод для создания пользовательских токенов. Вы также можете программно создавать собственные токены на любом языке, используя сторонние библиотеки JWT.

Ваш сервер должен создать собственный токен с уникальным идентификатором ( uid ) и передать этот токен клиентскому приложению, которое будет использовать его для входа в Firebase. См. Раздел Создание пользовательских токенов для получения примеров кода и дополнительных сведений о процессе создания пользовательских токенов.

Создавайте собственные токены

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

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

В Firebase Admin SDK есть встроенный метод проверки идентификаторов. Вы также можете программно проверить токены ID на любом языке, используя сторонние библиотеки JWT. См. Раздел Проверка токенов идентификатора для получения дополнительных сведений и примеров кода о процессе проверки токенов идентификатора.

Проверить токены ID

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

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

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

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