Я использовал jamesiarmes / php-ews пару лет назад, чтобы экспортировать все мои элементы календаря с помощью скрипта cron.Аутентификация происходила по имени пользователя и паролю.Это работало отлично.
Теперь моя компания изменила политику и добавила аутентификацию на основе токенов, предоставляемую контроллером доставки Netscaler.
С этой структурой у меня две проблемы:
1) Перенаправление: вызов URL-адреса OWA (например, «owa.company.com/owa») без проверки подлинности вызывает перенаправление на страницу входа в Netscaler (например, «netscaler.company.com»).После успешной аутентификации перенаправление на страницу OWA выполнено.
Запуск моего скрипта для owa.company.com/owa приводит к
'SOAP client returned status of 302'
Я думаю / надеюсь, что это не такt перенаправлять вообще, если аутентификация прошла успешно.
2) Аутентификация: библиотека php-ews не поддерживает аутентификацию токена.Я надеюсь сделать «одноразовый» вход в систему, экспортировать информацию для входа в систему (например, куки-файлы), установить их с помощью собственных методов SOAP php (например, setSoapHeaders, setCurlOptions) и позволить сеансу / сценарию выполняться с поддержкой активности..
Внедрение всех (чтобы быть уверенным ;-)) файлов cookie домена company.com:
$cookies = array(
'NSC_TMAA' => 'some_random_things',
'NSC_TMAS' => 'some_random_things',
'NSC_PERS' => 'some_random_things',
'NSC_TASS' => 'https://owa.company.com/owa/EWS/Exchange.asmx',
'UserContext' => 'some_random_things',
'OutlookSession' => 'some_random_things'
);
foreach($cookies as $cookie_name => $cookie_value) {
$client->__setCookie($cookie_name, $cookie_value);
}
Внедрение заголовков (не уверены, какие из них даже необходимы):
$curl_options = array(
CURLOPT_HTTPHEADER => array(
'Connection' => 'keep-alive',
'Referer' => 'https://netscaler.company.com/',
'Upgrade-Insecure-Requests' => '1',
'User-Agent' => 'Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:66.0) Gecko/20100101 Firefox/66.0',
'DNT' => '1'
)
);
$client->__setCurlOptions($curl_options);
Все еще ошибка SOAP 302.
Надеюсь, вы мне поможете.