Пользовательская аутентификация Firebase (Firestore) с использованием единого входа, контролируемого третьей стороной - PullRequest
1 голос
/ 17 июня 2019

Я создаю приложение Firebase (с использованием Firestore), которое должно поддерживать пользовательскую аутентификацию с помощью единого входа через стороннюю систему.

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

Однако, поскольку Admin SDK предоставляет полный доступ к приложению Firebase, у меня есть опасения по поводу передачи этих ключей другой стороне.Есть ли способ, которым я могу предоставить секретный ключ, который предоставляет более ограниченные привилегии третьей стороне?Я хочу, чтобы они могли использовать JWT для своих пользователей для доступа к приложению, но я не хочу, чтобы они могли напрямую читать / писать из моей базы данных.

1 Ответ

0 голосов
/ 18 июня 2019

Я думаю, что решил эту проблему, выполнив следующие шаги ...
1) Доступ к инструментам администрирования IAM проекта Firebase
2) Создайте новую сервисную учетную запись для проекта в разделе «Сервисные учетные записи». 3) Создайте пользовательскую роль в разделе «Роли» и предоставьте ей доступ ко всем привилегиям Firebase Authentication: https://firebase.google.com/docs/projects/iam/permissions#auth
4) Назначьте пользовательскую роль учетной записи службы в разделе «IAM» интерфейса администратора.
5) Вернитесь в раздел «Учетные записи служб» и создайте / загрузите закрытый ключ для этой учетной записи службы.
6) Используйте этот ключ в качестве учетных данных для Firebase Admin SDK и создайте собственный токен, используя процесс, подробно описанный здесь:
https://firebase.google.com/docs/auth/admin/create-custom-tokens

SDK должен позволять создавать собственный токен, но он будет возвращать ошибки при попытке выполнить другие действия, такие как доступ к базе данных проекта.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...