Microsoft Graph - 获取 MemberOf

Microsoft Graph - Get MemberOf

我正在尝试使用 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, 我得到正确的结果。 我让管理员同意我在课程范围内要求的权限。

有人遇到过这个问题吗?

知道我应该如何纠正吗?

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