<p>SharePoint Online (SPO) prend en charge l’<em>authentification basée sur les revendications</em>.</p>
<p>L’image ci-dessous illustre comment l’authentification est effectuée dans SPO :</p>
<p>Selon <a href="http://allthatjs.com/2012/03/28/remote-authentication-in-sharepoint-online/">cet article</a>, le processus d’authentification consiste en les étapes suivantes :</p>
<p>Étapes :</p>
<ul>
<li>
<p>Envoyer une requête SAML au STS</p>
</li>
<li>
<p>Recevoir la réponse SAML</p>
</li>
<li>
<p>Envoyer le jeton de sécurité à SharePoint Online</p>
</li>
<li>
<p>Recevoir les cookies d’authentification</p>
</li>
<li>
<p>Envoyer les requêtes en incluant les cookies d’authentification</p>
</li>
</ul>
<p><a href="https://github.com/vgrem/phpSPO">phpSPO - Client SharePoint pour PHP</a> prend en charge l’authentification SPO.</p>
<p>La bibliothèque fournit un client SharePoint Online (SPO) pour les applications PHP. Elle vous permet d’effectuer des opérations CRUD sur les données SharePoint en utilisant une API basée sur REST/OData de SharePoint 2013.</p>
<p>Exemples</p>
<p>Comment effectuer l’authentification dans SharePoint Online (SPO) :</p>
<pre><code class="lang-auto">try {
$client = new SPOClient($url);
$client->signIn($username,$password);
echo 'You have authenticated successfully\n';
}
catch (Exception $e) {
echo 'Authentication failed: ', $e->getMessage(), "\n";
}
</code></pre>
<p>L’exemple suivant montre comment effectuer des opérations CRUD sur les données d’une liste SharePoint :</p>
<pre><code class="lang-auto"><?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);
?>
</code></pre>
<p>Références</p>
<p>[SharePoint Online client for PHP](<a href="http://blog.vgrem.com/2014/05/31/sharepo">http://blog.vgrem.com/2014/05/31/sharepo</a></p>
<p><em>(Réponse tronquée)</em></p>