Google 致力于为黑人社区推动种族平等。查看具体举措

Введение в 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. ID маркеры соответствуют OpenID Connect спецификации и содержат данные для идентификации пользователя, а также некоторой другой информации о профиле и аутентификации , связанных с . Вы можете отправлять, проверять и проверять эти токены со своих собственных серверов. Это позволяет вам безопасно идентифицировать текущего пользователя, вошедшего в систему, и авторизовать его в ваших собственных внутренних ресурсах.

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

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

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

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

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

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