2017-04-14 5 views
0

私は、Microsoft Graph APIを使用して、ドメイン電子メールを使用してユーザーをWebアプリケーションにログオンしています。私はMicrosoft Graph APIのユーザーグループメンバーシップを読み取ることはできますか?

$token = $_SESSION['access_token']; 
$graph = new Graph(); 
$graph->setAccessToken($token); 
$response = $graph->createRequest("GET", "/me")->setReturnType(Model\User::class)->execute(); 
var_dump($response); 

を使用してユーザーの基本的なプロファイルを読み取ることができています

は、私は彼らのグループを読むことができる方法はありますか?それとも、ドメイン管理者にこの情報をアプリに渡すよう指示することができますか?

答えて

1

memberOfメソッドを使用してこれを行うことができます。https://graph.microsoft.com/v1.0/me/memberOf

最初のトークン要求には、permission scopesのいずれかが追加されている必要があります。

  • Directory.Read.All
  • Directory.ReadWrite.All
  • かかわらずDirectory.AccessAsUser.All

あなたが選択したこれらのスコープのうち、彼らはすべての前に、管理者の同意が必要になります通常のユーザはそれらを認可することができます。これを行うには、まず「管理者同意」ワークフローを実行する必要があります。このワークフローには管理者が必要ですが、一度完了すると、アプリケーションのユーザーは制限された範囲に "管理者の同意"を得ます。

たとえば、あなたは通常、あなたがして

https://login.microsoftonline.com/common/oauth2/authorize?<your params>にそれらをリダイレクトすることで、ユーザーを認証しますでしょう。

このスコープは、しかし、管理を必要とするので、あなたは拳最初

https://login.microsoftonline.com/common/adminconsent?<yours params>にそれらをリダイレクトすることによって、管理者認証を持つことで同意を取得する必要があります。

管理者が同意すると、通常のユーザーはOAUTHを使用して認証できます。

関連する問題