Есть ли способ избежать запроса «выбрать учетную запись» при выходе из Microsoft AAD с помощью oAuth? - PullRequest
1 голос
/ 21 июня 2019

Я пишу JS-приложение, в котором пользователь может выполнить аутентификацию с помощью Microsoft, oAuth2 и openId connect. Мне нужно, чтобы пользователь мог переключать учетные записи, поэтому выйдите из системы и войдите в другую учетную запись. В процессе выхода из системы пользователю предлагается «выбрать учетную запись для выхода», даже если существует только одна учетная запись (см. всплывающий скриншот ). Как я мог пропустить это приглашение?

Я знаю, что для входа в систему вы можете передать login_hint или sid (идентификатор сессии из идентификатора токена). Я попробовал это без успеха: - С login_hint в строке запроса URL у меня все еще есть приглашение «выбрать учетную запись» (логин__хинта preferred_username для пользователя, который я успешно использую для входа в систему) - С sid и iss в строке запроса URL я получаю ошибку InvalidSessionId: AADSTS90007 Bad request. The passed session ID can't be parsed. URL выглядит так:

https://login.microsoftonline.com/common/oauth2/v2.0/logout?sid=M.1234567890123456789&iss=https%3A%2F%2Flogin.microsoftonline.com%2F1234567a-1a23-1a2b-a123-12a345b67cde%2Fv2.0

(я пытался как с закодированным URL, как указано выше, так и с необработанным URL для iss, с тем же результатом) Что я здесь не так делаю?

Чтобы дать немного больше контекста, это приглашение беспокоит меня, потому что мне нужно добиться тихого выхода из системы. Причина этого заключается в том, что всплывающее окно oAuth для входа в систему блокируется браузером, поскольку оно появляется спустя много времени после того, как пользователь нажал кнопку для переключения учетных записей. Также кажется, что это приглашение отключает post_logout_redirect_uri, поэтому я не могу использовать поток перенаправления. Смотрите этот выпуск GitHub: https://github.com/AzureAD/microsoft-authentication-library-for-js/issues/735

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...