Ошибка: AADSTS50058: Запрос на тихий вход в систему отправлен, но ни один пользователь не вошел в систему - Angular Проблема аутентификации ADAL в браузере мобильного сафари - PullRequest
0 голосов
/ 25 апреля 2020

У нас есть сайт, разработанный с использованием Angular 7, и он использует библиотеку Adal-Angular4 для Azure Активной аутентификации Directoty. Когда сайт просматривается в Safari на iPhone, возникает ошибка ниже.

Error: AADSTS50058: A silent sign-in request was sent but no user is signed in. The cookies used to represent the user's session were not sent in the request to Azure AD. This can happen if the user is using Internet Explorer or Edge, and the web app sending the silent sign-in request is in different IE security zone than the Azure AD endpoint (login.microsoftonline.com).

Когда Запретить межсайтовый скриптинг опция браузера Safari выключена, тогда аутентификация проходит нормально , Мы также заметили, что в браузере Chrome на одном из телефонов Samsung Galaxy S8 + эта проблема возникает. Любая идея, что именно является причиной этой проблемы и как ее исправить.

Ответы [ 2 ]

1 голос
/ 30 апреля 2020

Причина: Ошибка возникает из-за того, что в конечную точку login.microsoftonline.com отправляется тихий вход, однако AAD SSO cook ie не обнаруживается. Этот повар ie определяет, вошел ли пользователь в систему или нет. Вход в систему без вывода сообщений используется только в том случае, если известно, что пользователь уже вошел в систему или имеет токен refre sh для обмена на новый токен доступа.

Возможное разрешение # 1 Упреждающая проверка истечения срока действия. Вы можете попытаться предотвратить возникновение этой ошибки, проверив, имеется ли у вас действительный идентификатор токена. Если ваш идентификационный токен недействителен, вы попросите пользователя снова войти в систему.

Возможное решение # 2 Перехват ошибки и повторный запрос пользователя на вход Для устранения этой ошибки вы нужно будет отловить эту ошибку в обратном вызове, который вы можете передать в функцию приобретенного токена ADAL JS. Если возникает ошибка AADSTS50058, вы попросите пользователя снова войти в систему.

Возможное решение # 3 Повар расширения браузера ie Блокировщики и сторонние файлы cookie отключены Некоторые пользователи могут столкнуться с этой проблемой из-за расширения браузера, которое блокирует куки для отслеживания целей. Это приведет к возникновению этой ошибки AADSTS50058, вам нужно будет внести белый список конечной точки login.microsoftonline.com в расширение вашего браузера, чтобы избежать повторного получения этой ошибки.

Эта ошибка также может возникать, если сторонние файлы cookie были отключены в вашем браузере. Повторно включите сторонние файлы cookie в вашем браузере, чтобы предотвратить возникновение этой ошибки.

Пожалуйста, обратитесь по этой ссылке

0 голосов
/ 01 мая 2020

Помимо того, что «Идентификация Рагхавендры-MSFT» упомянула в своем ответе (возможное решение № 2), нам удалось заставить его работать, отловив ошибку вызова acquToken и затем получив токен с помощью вызова acquTokenRedirect. Это добавляет еще одно перенаправление, но делает свою работу. Обратите внимание, что при использовании ADAL или MSAL v1 это единственный вариант, который я нашел из всех исследований, которые я мог провести. MSAL v2, т. Е. Пакет @ azure / msal-browser, в частности, основанный на потоке кода авторизации OAuth 2.0 с PKCE, исключает необходимость использования сторонних файлов cookie и может быть подходящим вариантом; однако в настоящее время он находится в режиме бета-версии, поэтому потребуется некоторое время, прежде чем его можно будет использовать для производственного кода.

...