AppModelV2: как автоматически войти в систему с помощью Azure

Я пробую новую модель для унифицированной проверки подлинности приложений с использованием паспорта-azurea-ad из этой ссылки https://docs.microsoft.com/en-us/azure/active-directory/active-directory-v2-devquickstarts-node-web

Интеграция прошла успешно, но каждый раз, когда я вхожу в систему, меня перенаправляют на страницу, где я могу выбрать одну из существующих учетных записей Microsoft или добавить новую. Почему сеанс или учетная запись не подхватываются автоматически, если пользователь уже вошел в свою учетную запись Azure или Microsoft? Мое требование состоит в том, что сеанс пользователя должен быть выбран автоматически (не в первый раз, когда он дает согласие), если он вошел в свою учетную запись Azure или учетную запись micrososftвведите здесь описание изображения

этой страницы нужно избегать, если он уже вошел в систему


person Shakthi    schedule 28.11.2016    source источник


Ответы (1)


Причина - техническое ограничение. Позвольте мне посмотреть, если я могу объяснить кратко:

  • Когда запрос поступает на конечную точку версии 2 (login.microsoftonline.com), конечная точка версии 2 не может обнаружить наличие существующего сеанса учетной записи потребителя (login.live.com).
  • Поэтому конечная точка версии 2 должна сделать запрос (через iframe, размещенный на странице login.microsoftonline.com) к login.live.com, чтобы определить, существует ли сеанс потребителя или нет.
  • Если сеанс потребителя существует, конечная точка v2 должна показывать пользователю экран «выбор учетной записи», подобный тому, который вы изображаете в вопросе.
  • Если потребительский сеанс не существует, а у пользователя есть только один бизнес-сеанс, он может автоматически войти в систему с этой бизнес-учетной записью. Однако к этому времени пользователь, скорее всего, уже около секунды ждал завершения запроса к login.live.com. Это может быть странным пользовательским опытом, если страница автоматически заполняется через секунду.

Конечная точка v2 определенно может отображать счетчик загрузки или что-то еще, что удерживает пользователя до принятия решения, но было решено, что приемлемой альтернативой будет щелчок пользователем по плитке.

person dstrockis    schedule 28.11.2016
comment
@dstrockis Приложение, требующее аутентификации, может отправить последнее известное имя пользователя на конечную точку v2 в качестве параметра (даже независимо от того, является ли это учетной записью потребителя или нет), и конечная точка может сначала попытаться определить, есть ли у этого пользователя активный сеанс и автоматический вход. Будет ли это приемлемой альтернативой? - person Sameera; 29.11.2016
comment
Да! Попробуйте использовать параметр запроса &login_hint=. Он должен иметь именно то поведение, которое вы описываете - person dstrockis; 29.11.2016
comment
Я также должен добавить, что если вы используете конечные точки /consumers или /organizations, SSO будет автоматически выполняться при входе в одну учетную запись. - person dstrockis; 29.11.2016
comment
@dstockis - если я правильно понимаю, login_hint только предварительно заполнит электронное письмо, но не примет учетную запись и автоматический вход в систему, верно? и для автоматического входа в систему, если я использую подсказку параметра запроса: нет, она по-прежнему показывает страницу выбора для различных учетных записей. Можете ли вы пролить свет на это. На основе docs.microsoft. com/en-us/azure/active-directory/ - person Shakthi; 30.11.2016