Вход в Azure AD - как разрешить пользователю изменять учетную запись Azure, если кэшированная учетная запись не подходит для моего приложения - PullRequest
1 голос
/ 02 июля 2019

Базовый сценарий: Azure AD используется в качестве поставщика веб-приложения для проверки подлинности, идентификация, полученная из Azure, сопоставляется по электронной почте с локальной идентификационной информацией, и для авторизации API на основе веб-интерфейса приложения выдается файл cookie для проверки подлинности форм.

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

Желаемое решение: Если кэшированная учетная запись Azure недопустима для моего приложения, я хотел бы направить пользователявернуться на страницу входа в Microsoft с возможностью вручную ввести свои учетные данные

Как мне этого добиться, и что-то не так с этим потоком?Похоже, что в настоящее время единственный способ для пользователя войти в мое приложение - перейти на Azure и выйти из плохой учетной записи.Какие другие методы могут улучшить пользовательский опыт?Должен ли я использовать токен авторизации от Azure и программно выйти из системы, а затем вернуться в Azure для другого обхода?Могу ли я подсказать Azure, чтобы пользователь подсказывал, даже если они уже вошли в систему?

1 Ответ

0 голосов
/ 02 июля 2019

Я обнаружил, что мне действительно нужен флаг prompt = select_account на перенаправлении на azure, но библиотека, которую я использовал, затруднила определение того, как установить это.Я использую библиотеку ms-adal-angular6, которая является оболочкой для azure-activedirectory-library-for-js.

После копания в коде я обнаружил свойство конфигурации, которое не было задокументировано, называется extraQueryParameter, который приЯ установил «prompt = select_account», чтобы поведение было достаточно близко к тому, что необходимо.

В конечном итоге пользователь должен выбирать свою учетную запись каждый раз, а не только тогда, когда учетная запись неверна.Скорее всего, я мог бы запутаться с ответом об ошибке и во второй раз перенаправить назад с помощью prompt = select_account, чтобы получить искомое поведение, хотя библиотека также не позволяет легко изменить это на лету, поэтому я могу придерживатьсяэто всегда включено.

...