Я пытаюсь сделать запросы 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://code.msdn.microsoft.com/Remote-Authentication-in-b7b6f43c