Обнаружение потока существования социальной учетной записи с помощью настраиваемых политик в Azure AD B2C

Я изо всех сил пытаюсь понять, как реализовать настраиваемую политику для следующего потока:

User lands on the login page and that login page only contains an email input.
User enters email address and clicks continue
    if user has already registered
        Redirected to their selected login provider (Google, Microsoft Account or Local Account)
    if user has not registered before
        Check google provider if a user account exists for that email address
        if Google account exists
            Redirect to Google login
        Check Microsoft provider if a user account exists for that email address
        if Microsoft account exists
            Redirect to Microsoft login
        else
            Redirect to registration screen
            User completes registration screen
            User is automatically logged in
            
The user

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

Целевая страница

Страница, на которой обнаружена социальная учетная запись Microsoft

Однако я не могу найти информацию о

  1. как запросить социальных провайдеров о существовании учетной записи
  2. как создать этот сложный тип потока в настраиваемых политиках Azure AD B2C.

Будем очень признательны за любые указатели в правильном направлении.


person Jacques Snyman    schedule 23.10.2020    source источник


Ответы (1)


  1. Невозможно. Никто не позволит вам проверить электронную почту у IdP в социальной сети. Защита данных и т. Д.

  2. См. Наши образцы и вики

Ваша регистрация будет из нашего пути регистрации по умолчанию.

Ваш процесс входа в систему может работать следующим образом:

  1. Запрос на электронную почту
  2. Прочтите каталог, чтобы узнать, существует ли электронное письмо
  3. Если электронная почта существует, отправьте пользователя на IdP, который он использовал для регистрации. Вы можете сделать это, посмотрев на «эмитентов», зарегистрированных в объекте userIdentity,
  4. Если адрес электронной почты не существует, отправьте пользователя на объединенную страницу входа и регистрации (технический профиль), где он может войти в систему с помощью социальной сети или зарегистрироваться с помощью локальной учетной записи. Скройте элементы входа с помощью CSS.
person Jas Suri - MSFT    schedule 23.10.2020
comment
Большое спасибо за ваш ответ. Возможно, я был немного строг к требованию поиска пользователя в IdP. Возможно, использование домена пользователя может помочь. Я исследую еще немного. - person Jacques Snyman; 26.10.2020
comment
Я разместил здесь новый вопрос (stackoverflow.com/questions/64576360/), так как я не могу получить прочтение каталога, чтобы узнать, существует ли пользователь, и получить его IdP часть работает - person Jacques Snyman; 29.10.2020