iOS Надстройка Outlook не соблюдает заголовок Set-Cookies для внешних сайтов в диалоге - PullRequest
0 голосов
/ 27 апреля 2020

У меня есть веб-надстройка Outlook, использующая Office. js Dialog API для открытия диалогового окна, которое открывает внешнюю (то есть, не в моем домене надстройки) целевую страницу аутентификации. Когда эта страница загружается в диалоговом окне, она передает обратно заголовок Set-Cook ie с возвращаемым значением URL, установленным для страницы в моей надстройке, а затем перенаправляет на другой внешний сайт для выполнения проверки подлинности SAML (кого бы пользователь не имел настроен как их провайдер SAML). Когда вход в систему завершается, пользователь переходит на страницу завершения в целевом домене аутентификации, которая, как ожидается, прочитает изначально настроенный повар ie и перенаправит обратно к надстройке, используя URL-адрес в поваре ie.

Это прекрасно работает на настольных платформах, однако при использовании надстройки через приложение Outlook IOS я вижу, что заголовок Set-Cookies , похоже, не работает так, как когда поток достигает страницы завершения, файлы cookie отсутствуют.

например (с использованием URL-адресов заполнителей), файл функции надстройки загружен из https://my-addin.com/home

  • Надстройка запускает диалоговое окно в https://my-addin.com/redirect (тот же домен, что и надстройка, загруженная из).

  • Эта страница перенаправляется на https://auth-helper.com/auth?returnUrl=https : //my-addin.com/finalize. Заголовок Set-Cook ie передается обратно с сервера со значением ReturnURL = https://my-addin.com/finalize

  • Перенаправляет на настроенную страницу входа SAML https://authenticate/login , передавая URL-адрес возврата провайдеру SAML как https://auth-helper.com/auth/completion.

  • При успешном входе пользователя он перенаправляется на https://auth-helper.com/completion. Страница завершения пытается прочитать значение ReturnURL от cook ie, чтобы перейти обратно к надстройке, но в файлах cookie не отображается ReturnURL при iOS.

    • . Также можно видеть из запросов мониторинга прокси-инструмента ожидаемый повар ie не присутствует в запросах к auth-помощнику после того, как он должен был быть установлен.

Из тестирования похоже, что заголовок Set-Cook ie работает для страниц в домене надстройки, когда они загружаются в диалоговом окне, т.е. если я возвращаю Set-Cook ie на страницу, с которой я открываю диалог, а затем перехожу на другую страницу в моем домене надстройки, то cook ie будет установлен в соответствии с ожиданиями и будет читаться со второй страницы. Но для страниц за пределами домена надстройки, похоже, не удается установить cook ie для последующего использования.

Set-Cookie: ReturnURL=https://my-addin.com/finalize;Version=1;Path=/auth;Domain=auth-helper;Max-Age=86400;HttpOnly;Secure;SameSite=None
  • Пример заголовка, который не работает, похоже, работает iOS диалог надстроек.

Может кто-нибудь придумать какие-либо обходные пути, причины или решения здесь?

  • Я не могу изменить поведение страниц за пределами моего надстройка.

  • На странице, на которую я перенаправляю, для X-Frame-Options установлено значение sameorigin, поэтому я не могу загрузить его в скрытый iFrame вне диалогового окна.

  • Этот поток работает на настольном Safari, Chrome, IE, Windows клиент Outlook, Ma c клиент Outlook, и ранее было замечено, что он работает на iOS еще в сентябре 2019 года, указывая на изменение на самой платформе.

  • На устройстве iOS в настройках Safari параметры «Запретить межсайтовое отслеживание» и «Блокировать все файлы cookie» отключены.

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