Как выйти из системы через Admin SDK?(сделайте auth === нулевым) - PullRequest
0 голосов
/ 13 февраля 2019

Когда маркер идентификатора пользователя отозван, информация должна быть передана клиенту для таких действий, как повторная аутентификация или пользовательский signOut ().

На клиенте мы можем позвонить FirebaseAuth.DefaultInstance.SignOut.Как мы можем достичь того же эффекта с помощью администратора SDK?

Есть ли способ выйти из системы с помощью Admin SDK? (сделать auth === нулевым).

«Хакер» может изменить код клиента и помешать выходу приложения из системы или повторной аутентификации.Я знаю, что могу проверить, был ли токен отозван с помощью admin SDK и правил firebase, но было бы намного проще проверить, только если auth равен null.Или я ошибаюсь, поскольку «хакер» однажды получил маркер идентификатора и может отправлять запросы с этими учетными данными в любом случае, даже после того, как клиентское приложение под названием FirebaseAuth.DefaultInstance.SignOut?

1 Ответ

0 голосов
/ 13 февраля 2019

Есть ли способ выйти из системы с помощью admin SDK?

Admin SDK позволяет отозвать refresh токен пользователя.Это не приводит к немедленному выходу пользователя из системы, поскольку у него есть невозвратный токен ID , действительный в течение часа.

Если вы хотите немедленно сделать серверные ресурсы недоступными дляКлиент, чей токен вы отозвали, вы можете записать его состояние в базу данных при отзыве токена, а затем получить к нему доступ из своих правил безопасности.Нет более простого способа их мгновенно заблокировать.Также см. Пять советов по защите вашего приложения , которые охватывают эту тему и вопросы безопасности.

«Хакер» может изменить код клиента и предотвратить выход из приложения или повторную проверку подлинности

Состояние аутентификации клиента основано на ID-токене, который действителен в течение часа после его чеканки.Клиент не может расширить токен за пределы этого.Чтобы получить новый ID-токен, ему нужно будет обратиться к серверу аутентификации, который завершится неудачей после того, как его токен обновления был отозван.

Выход пользователя на клиент заставляет этого клиента забыть токены для этого пользователя.Идентификационный токен все еще будет действителен, но никто не узнает об этом.Имейте в виду: весь трафик между приложением и серверами отправляется через (сквозные зашифрованные) HTTPS-соединения.Это означает, что атака «человек посередине» возможна только в том случае, если кто-то может расшифровать этот трафик, что требует наличия у него доступа к сертификату.Более подробное объяснение см. Предотвращает ли https предотвращение атак посредника через прокси-сервер? .

...