У меня возникла проблема при использовании конечной точки авторизации в Windows 10 с Google Chrome.
При запросе следующего:
GET /common/oauth2/v2.0/authorize?response_type=id_token+token&response_mode=fragment&client_id=...&redirect_uri=...&scope=openid+profile+User.Read&state=...&nonce=...&prompt=none&domain_hint=organizations&login_hint=...
В любой другой среде, кроме Windows 10 и Google Chrome(Например, Firefox или Windows 7) поток авторизации успешно завершается, и перенаправление происходит по URL-адресу, указанному в запросе, с учетом токена идентификатора.
Но в комбинации Windows 10 + Google Chrome ответ вместо этого является некоторымHTML-код, содержащий следующий файл JavaScript:
https://secure.aadcdn.microsoftonline-p.com/ests/2.1.8148.16/content/cdnbundles/oldbssointerrupt_core.min_ifovy4ltwgbno2mkumjmxg2.js
Сценарий выполняется и запускает новый запрос к конечной точке авторизации с теми же параметрами, за исключением того, что добавляется новый параметр: sso_reload=true
Этот новый запрос просто висит в браузере с состоянием Pending и никогда не возвращает никакого ответа.Таким образом, процесс авторизации не может завершиться.
Мой текущий пользовательский агент - Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/69.0.3497.100 Safari/537.36
Если я повторно запускаю тот же запрос с другим пользовательским агентом, он обычно завершается без каких-либо странных действий.
Итак, у меня есть 2 вопроса:
- Есть ли какая-либо причина для такого специфического поведения для Windows 10 и Chrome?
- Какова цель (недокументированного) параметра sso_reload?
Это звучит как очень специфическая проблема, но я был бы признателен за любой комментарий или руководство.Спасибо!