我正在尝试访问用户是使用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, 我得到了正确的结果。 我有一个管理员同意我在课程范围内要求的权限。
有没有人遇到过这个问题?
知道我应该如何改正吗?
答案 0 :(得分:3)
memberOf API需要以下范围之一:
无论您选择哪个范围,他们都需要经过行政许可才能获得普通用户的授权。要做到这一点,您首先需要让他们完成“管理员同意”工作流程。此工作流程需要管理员,但一旦完成,您的应用程序的任何用户都将对限制范围具有“管理员同意”。
例如,您通常会通过将用户重定向到
来对用户进行身份验证 https://login.microsoftonline.com/common/oauth2/authorize?<your params>
。
由于此范围需要管理员,因此您首先需要通过将管理员身份验证重定向到
来获得管理员身份验证来获得同意 https://login.microsoftonline.com/common/adminconsent?<yours params>
。
管理员授予同意后,普通用户将能够使用OAUTH进行身份验证。