9

認証が必要なPHPアプリケーションがあり、SharePointを実行するクライアントに対して、ユーザーがSharePointクレデンシャルを使用できるように何らかのSSOサービスを提供したいと考えています(Google Apps、CASなどと同様のことを行いました。 。)

注:明らかに、私たちのアプリはSharePointと同じドメイン/構内でホストされていません

私はそれについての文学を見つけることができないので、どんなポインターでも歓迎されるでしょう!

注意:ユーザーがURLを入力してアプリに直接ログインし、OAuthなどの場合とまったく同じようにSharePointを使用してログインできるように、適切な階層認証メカニズムを実装したいと考えています...

前もって感謝します !

4

2 に答える 2

6

SharePoint Online(SPO)は、 クレームベースの認証をサポートしています。

次の図は、SPOで認証がどのように実行されるかを示しています。

ここに画像の説明を入力してください

この投稿によると、認証プロセスは次の手順で構成されています。

手順:

  1. SAMLリクエストをSTSに送信する
  2. SAML応答を受信する
  3. セキュリティトークンをSharePointOnlineに送信する
  4. 認証Cookieを受信する
  5. 認証Cookieを含むリクエストを送信する

phpSPO-PHP用のSharePointクライアントはSPO認証をサポートしています。

ライブラリは、PHPアプリケーション用のSharePoint Online(SPO)クライアントを提供します。これにより、SharePoint 2013 REST/ODataベースのAPIを使用してSharePointデータに対してCRUD操作を実行できます。

SharePoint Online(SPO)で認証を実行する方法:

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

次の例は、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);
 
?>

参考文献

PHP用のSharePointOnlineクライアント

于 2014-09-02T16:56:07.240 に答える
1

これについてまだヘルプが必要かどうかわからない-Sharepointは通常、Active Directory(AD / LDAP)と同期するように設定されています。したがって、SharePointを使用し、Active Directoryログインを介して社内で内部認証されているユーザーがいる場合は、LDAPに対してアプリを認証することをお勧めします(ユーザー名としてメールアドレスまたはドメインIDを使用します)。

これに関する詳細情報は次のとおりです 。ActiveDirectoryを介したLDAPを使用したPHPでの認証

于 2013-08-09T19:08:47.000 に答える