Как я могу настроить свою платформу идентификации Google для применения правила «одна учетная запись для каждого адреса электронной почты» без автоматической привязки учетных данных?

Как я могу настроить свою платформу идентификации Google для применения правила «одна учетная запись для каждого адреса электронной почты» без автоматической привязки учетных данных?

Ожидаемое (желаемое) поведение:

  1. Вход пользователя с Google
  2. Вход пользователя со сторонней аутентификацией с использованием того же адреса электронной почты
  3. Проверка подлинности Firebase должна выдавать ошибку с кодом auth / account-exists-with-different-credential.
  4. Веб-приложение обнаруживает ошибку и просит пользователя войти в систему с помощью существующего поставщика, прежде чем связывать пользователя с новыми учетными данными из единого входа. (См .: https://firebase.google.com/docs/reference/js/firebase.auth.Auth)

Фактическое поведение:

  1. Вход пользователя с Google
  2. Вход пользователя через стороннего провайдера с использованием того же адреса электронной почты
  3. Google автоматически связывает пользователя с существующей учетной записью

Примечание: это проблема, потому что сторонний администратор потенциально может создать учетные данные с любым адресом электронной почты, чтобы захватить любую учетную запись на нашей платформе.

Фон:

Я использую Firebase с Google Identity Platform возможность интеграции со сторонней системой единого входа. На платформе идентификации включены следующие поставщики:

  1. Анонимный
  2. Пароль от электронной почты
  3. Facebook
  4. Google
  5. Сторонняя аутентификация через OKTA

Платформа идентификации не имеет активированного клиента.

В аутентификации firebase включена опция «Одна учетная запись на адрес электронной почты». Этот параметр отображается как ссылка на параметр «Связывание учетных записей пользователей - связывание учетных записей с одним и тем же адресом электронной почты» в платформе Identity.


comment
Попробуйте сделать это с помощью консоли Firebase: (измените идентификатор ПРОЕКТА в URL-адресе) console.firebase.google.com/project/MY_PROJECT_ID/ Сообщите мне, работает ли это!   -  person guillaume blaquiere    schedule 06.01.2020
comment
Спасибо за ответ. Консоль firebase позволяет вам выбирать между Разрешить создание нескольких учетных записей с одним и тем же адресом электронной почты или Запретить создание нескольких учетных записей с одним и тем же адресом электронной почты. Если я выберу второй вариант, он автоматически настроит платформу Google Identity на привязку учетных записей пользователей - связывание учетных записей с одним и тем же адресом электронной почты. Эти два варианта связаны, даже несмотря на то, что они означают совершенно разные вещи. Мне нужна возможность принудительно использовать одну учетную запись для каждого электронного письма без функции автоматической привязки.   -  person Fnop    schedule 07.01.2020


Ответы (1)


Связывание учетной записи не удастся, если учетные данные уже связаны с другой учетной записью пользователя. Глядя на эту документацию [1], слияние учетных записей в этой ситуации обрабатывается кодом (link-multiple-accounts.js), и его можно предотвратить, изменив его.

[1] https://firebase.google.com/docs/auth/web/account-linking

person Rajeevan    schedule 12.05.2020