Как я могу настроить свою платформу идентификации Google для применения правила «один аккаунт на адрес электронной почты» без автоматической привязки учетных данных?
Ожидаемое (желаемое) поведение:
- Вход пользователя в систему с помощью Google
- Вход пользователя в систему с использованием сторонней аутентификации с использованием того же адреса электронной почты
- При аутентификации Firebase выдается ошибка с кодом «auth / account-существующие-with-Different-credential» '
- Веб-приложение ловит ошибку и просит пользователя войти в систему с существующим провайдером, прежде чем связывать пользователя с новыми учетными данными из единого входа. (См .: https://firebase.google.com/docs/reference/js/firebase.auth.Auth)
Фактическое поведение :
- Вход пользователя в систему с помощью Google
- Вход пользователя в систему от стороннего поставщика с использованием того же адреса электронной почты
- Google автоматически связывает пользователя с существующей учетной записью
Примечание: это проблема, поскольку сторонний администратор может потенциально создать учетные данные с любым адресом электронной почты для взлома любого аккаунта на нашей платформе.
Справочная информация:
Я использую Firebase с Платформа Google Identity с возможностью интеграции со сторонним SSO. На платформе идентификации включены следующие поставщики:
- Аноним
- Электронная почта / пароль
- Facebook
- Google
- Сторонние поставщики аутентификация через OKTA
На платформе идентификации не включен ни один арендатор.
В аутентификации firebase включена опция «Одна учетная запись на адрес электронной почты». Эта опция появляется для ссылки на «Связывание учетных записей пользователей - связывать учетные записи с тем же адресом электронной почты» в платформе Identity.