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