У меня есть мобильное приложение, использующее поток кода авторизации ODIC. Наша серверная реализация использует Identity Server 4.
Мобильное приложение открывает окно браузера, и я могу в любой момент войти в систему стороннему поставщику, затем оно перенаправляет на /signin-adfs
на нашем сервере идентификации, который устанавливает некоторые файлы cookie idsrv.external
и возвращает от 302 до /External/Callback
. Браузер перенаправляет на /External/Callback
, но не отправляет с ним файлы cookie idsrv.external
, поэтому Identity Server выдает исключение, поскольку результат из HttpContext.AuthenticateAsync
не успешен.
Я застрял на этом этапе, потому что я не разработчик мобильных приложений. Я развернул и немного настроил Identity Server в других областях, но не в этой части кода.
Я считаю, что мобильное приложение открывает сеанс Safari для выполнения аутентификации. Является ли это проблемой с файлами cookie, которые не нравятся браузеру (домен, путь, https, безопасный)? или что-то другое? Размер печенья составляет 4 КБ за штуку. Я не уверен, что может быть причиной этой проблемы.
Чтобы сделать вещи еще более странными ... если браузер обновляется (/External/Callback
), тогда запрос работает, и приложение для iOS получает код и может выполнить следующий запрос для получения токена.