Вот быстрая версия моего вопроса:
Можно ли каким-либо образом установить cookie в браузер клиента, когда cookie используется для другого сервера (в данном случае почтового сервера Exchange)? В этом сценарии сервер, пытающийся установить cookie, находится по адресу "intranet.myschool.edu", а сервер обмена - по адресу "owa_server.myschool.edu".
Вот полный вопрос:
У меня есть скрипт php, который использует cURL для отправки HTTP POST на наш сервер Exchange, на котором включена аутентификация на основе форм.
Когда я успешно выполняю HTTP POST (который включает в себя пользователя / пароль в опубликованном URL), сервер Exchange (или, более конкретно, файл https://my.school.edu/exchweb/bin/auth/owaauth.dll) выводит файлы cookie.
В частности, он выводит идентификатор «sessionid» и «cadata».
С этими идентификаторами cookie, записанными в текстовый файл на сервере, cURL / PHP может ссылаться на него и затем запрашивать данные (через webdav и т. Д.) С сервера Exchange / OWA.
Эта часть работает.
Проблема, которую я хотел бы решить, теперь передает идентификаторы cookie в браузер клиентов, чтобы они могли использовать эти идентификаторы cookie для автоматического входа в свою учетную запись OWA.
По сути, я бы хотел, чтобы наши пользователи входили в нашу интрасеть со своими идентификаторами Active Directory и видели снимок своих последних электронных писем. Затем, если им нужно, я бы дал им небольшую ссылку, чтобы переключиться на полноценное веб-приложение OWA. Когда происходит это переключение, я не хочу, чтобы им приходилось входить в OWA вручную. Поскольку они уже представили свои имя пользователя и пароль Active Directory в передней части интрасети, я бы хотел, чтобы они автоматически вошли в OWA.
Следует отметить, что использование аутентификации Windows для попытки единого входа невозможно, поскольку у нас есть смесь Mac OS, Windows и Linux.
Я думал, что смогу сделать "setcookie", назначить идентификаторы cookie, которые получил cURL, и поместить их в браузер клиентов.
Разве это не возможно? Разве нельзя «подделать» Exchange / OWA (или любой другой сайт) таким способом.
У меня есть законные идентификаторы файлов cookie, записанные cURL. Нет ли способа передать их клиентскому браузеру на другом компьютере?
В худшем случае будет ли моя единственная надежда использовать Javascript для автоматической вставки имени пользователя и пароля на страницу входа в OWA?
У кого-нибудь есть другие идеи, как избежать проблемы двойного входа в систему с Exchange / OWA?
Спасибо за предоставленную помощь!