Microsoft Graph - 获取MemberOf

时间:2017-04-20 09:18:35

标签: c# xamarin microsoft-graph

我正在尝试访问用户是使用Microsoft Graph API的成员的组。 我遇到了一个问题,因为我认为我的权限设置正确,但是,当我登录应用程序时,我收到了消息:

AADSTS90093: Calling principal cannot consent due to lack of permissions.

奇怪的是,我只是要求这个许可范围:

public static String [] ClientScope = {“User.Read”,“User.ReadBasic.All”,“Group.Read.All”};

让我困惑的是,如果我登录Microsoft Graph资源管理器并转到https://graph.microsoft.com/v1.0/me/memberOf, 我得到了正确的结果。 我有一个管理员同意我在课程范围内要求的权限。

有没有人遇到过这个问题?

知道我应该如何改正吗?

1 个答案:

答案 0 :(得分:3)

memberOf API需要以下范围之一:

  • 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进行身份验证。