如何通过SharePoint Online对PHP应用程序进行身份验证?
我们有需要身份验证的PHP应用程序,对于运行SharePoint的客户端,我们希望提供某种SSO服务,以便用户可以使用其SharePoint凭据(我们与Google Apps、CAS等做了类似的事情) 注意:显然,我们的应用程序与SharePoint不在同一个域/premices上 我找不到有关它的资料,所以欢迎任何人指点 注意:我们希望实现一个适当的层身份验证机制,这样用户可以通过键入URL直接登录到我们的应用程序,并选择使用SharePoint登录,就像您使用OAuth之类的工具一样如何通过SharePoint Online对PHP应用程序进行身份验证?,php,sharepoint,authentication,single-sign-on,office365,Php,Sharepoint,Authentication,Single Sign On,Office365,我们有需要身份验证的PHP应用程序,对于运行SharePoint的客户端,我们希望提供某种SSO服务,以便用户可以使用其SharePoint凭据(我们与Google Apps、CAS等做了类似的事情) 注意:显然,我们的应用程序与SharePoint不在同一个域/premices上 我找不到有关它的资料,所以欢迎任何人指点 注意:我们希望实现一个适当的层身份验证机制,这样用户可以通过键入URL直接登录到我们的应用程序,并选择使用SharePoint登录,就像您使用OAuth之类的工具一样 提前谢
提前谢谢 不确定您是否仍需要此方面的帮助-Sharepoint通常设置为与Active directory(AD/LDAP)同步。因此,如果您的用户使用sharepoint并通过其Active directory登录在其公司中进行内部身份验证,那么您可能需要查看的是根据LDAP对您的应用进行身份验证(并使用电子邮件地址或域id作为用户名) 以下是关于这方面的更多信息: SharePoint Online(SPO)支持基于声明的身份验证 下图演示了如何在SPO中执行身份验证: 根据需要,认证过程包括以下步骤: 步骤:
支持SPO身份验证 该库为PHP提供了一个SharePoint Online(SPO)客户端 应用。它允许您在SharePoint上执行CRUD操作 数据使用基于SharePoint 2013 REST/OData的API 例子 如何在SharePoint Online(SPO)中执行身份验证: 以下示例演示如何对SharePoint列表数据执行CRUD操作:
<?php
require_once 'SPOClient.php';
$username = 'username@tenant.onmicrosoft.com';
$password = 'password';
$url = "https://tenant.sharepoint.com/";
$client = new SPOClient($url);
$client->signIn($username,$password);
//Get Tasks list
$listTitle = 'Tasks';
$list = $client->getList($listTitle);
//Create a Task item
$itemProperties = array('Title' => 'Order Approval', 'Body' => 'Order approval task');
$taskItem = $list->addItem($itemProperties);
print "Task '{$taskItem->Title}' has been created succesfully.\r\n";
$itemId = $taskItem->Id;
//Update a Task item
$itemProperties = array('PercentComplete' => 1);
$list->updateItem($itemId,$itemProperties);
//Delete a Task item
$list->deleteItem($itemId);
?>
不完全是重复的-但非常接近-您是否能够解决您的问题?如果他们使用Sharepoint,是否可以假定他们使用Active Directory进行身份验证?您可以通过LDAP进行身份验证,而不是SSO。用户/密码至少是相同的:)谢谢Vadim,我们最终使用SimpleSAML实现了这一点,但想法确实是一样的!谢谢,尽管我们的客户通常不会在他们的网络之外打开他们的LDAP帐户。大多数情况下,用户使用SAML。
<?php
require_once 'SPOClient.php';
$username = 'username@tenant.onmicrosoft.com';
$password = 'password';
$url = "https://tenant.sharepoint.com/";
$client = new SPOClient($url);
$client->signIn($username,$password);
//Get Tasks list
$listTitle = 'Tasks';
$list = $client->getList($listTitle);
//Create a Task item
$itemProperties = array('Title' => 'Order Approval', 'Body' => 'Order approval task');
$taskItem = $list->addItem($itemProperties);
print "Task '{$taskItem->Title}' has been created succesfully.\r\n";
$itemId = $taskItem->Id;
//Update a Task item
$itemProperties = array('PercentComplete' => 1);
$list->updateItem($itemId,$itemProperties);
//Delete a Task item
$list->deleteItem($itemId);
?>