我正在尝试使用需要身份验证的PHP5标准SOAP lib向Sharepoint列表(通过'http://url.co.uk/_vti_bin/Lists.asmx?WSDL)发出SOAP请求。我使用NTLM身份验证工作正常(这很痛苦,但最终工作)但现在项目的职责是通过CLAIMS进行身份验证,以便它可以用于Sharepoint安装或office365实例。
我从一开始就意识到标准的SOAP身份验证不起作用......但我还是试过了!不出所料,我收到错误回复“List Fault code:HTTPList Fault string:Forbidden”。
是否可以通过基于纯PHP / SOAP的解决方案通过CLAIMS进行身份验证,如果是,那么实现此目标的最佳方法是什么?我已经阅读了有关使用Apache技巧等进行身份验证的各种解决方案的不同解决方案的各种声明。我正在开发的项目要求这是一个纯PHP解决方案。
值得指出的是,我不是MS开发人员,对CLAIMS身份验证知之甚少(可能没有帮助!)
答案 0 :(得分:1)
以下是一些可能有帮助的信息(特定于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/
答案 1 :(得分:1)
phpSPO - SharePoint client for PHP库允许您使用基于REST / OData的SharePoint Online API对SharePoint列表数据执行CRUD操作。
当前版本使用基于声明的身份验证支持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";
}
答案 2 :(得分:0)
我还没有看到PHP的任何示例 - 这些解释了这个过程,并在C#中给出了一个可以在PHP中重写的实现。
http://code.msdn.microsoft.com/Remote-Authentication-in-b7b6f43c