Аутентификация (претензии) к Sharepoint / Office356 через PHP и SOAP

Я пытаюсь сделать запросы SOAP в списки Sharepoint (через 'http://url.co.uk/_vti_bin/Lists.asmx?WSDL), используя стандартную SOAP-библиотеку PHP5, для которой требуется аутентификация. Я работал нормально, используя аутентификацию NTLM (что было больно, но работало в конце), но теперь задача проекта заключается в аутентификации через CLAIMS, чтобы он работал как для установки Sharepoint, так и для экземпляра office365.

С самого начала я понял, что стандартная аутентификация SOAP не будет работать … но я все равно попробовал! Неудивительно, что я получил сообщение об ошибке «Код ошибки списка: HTTPList Fault string: Forbidden».

Возможно ли аутентификация через CLAIMS с помощью решения Pure PHP / SOAP, и если да, то каков наилучший способ достижения этого? Я прочитал различные статьи о претензиях auth для sharepoint с различными решениями, используя трюки Apache и т. Д. Для аутентификации. Проект, над которым я работаю, требует, чтобы это было чистое PHP-решение.

Возможно, стоит отметить, что я не являюсь разработчиком MS и не обладаю ограниченными знаниями об аутентификации CLAIMS (что, вероятно, не помогает!)

Вот еще информация (специфичная для PHP), которая также может помочь. Я еще не пробовал это, но не могу сказать, действительно ли это работает:

http://macfoo.wordpress.com/2012/06/23/how-to-log-into-office365-or-sharepoint-online-using-php/

http://allthatjs.com/2012/03/28/remote-authentication-in-sharepoint-online/

http://davidsit.wordpress.com/2010/02/23/reading-a-sharepoint-list-with-php/

phpSPO – клиент SharePoint для библиотеки PHP позволяет выполнять операции CRUD в данных списка SharePoint с использованием API на основе REST / OData для SharePoint Online.

Текущая версия поддерживает SharePoint Online с использованием проверки подлинности на основе утверждений.

Примеры

Как выполнить аутентификацию в SharePoint Online (SPO):

try { $client = new SPOClient($url); $client->signIn($username,$password); echo 'You have been authenticated successfully\n'; } catch (Exception $e) { echo 'Authentication failed: ', $e->getMessage(), "\n"; } 

Я не видел никаких примеров для PHP – они объясняют процесс и дают реализацию на C #, которую можно переписать в PHP.

http://www.wictorwilen.se/Post/How-to-do-active-authentication-to-Office-365-and-SharePoint-Online.aspx

http://code.msdn.microsoft.com/Remote-Authentication-in-b7b6f43c

http://blogs.msdn.com/b/cjohnson/archive/2011/05/14/part-2-headless-authentication-with-sharepoint-online-and-the-client-side-object-model.aspx