Microsoft Graph API - AADSTS90094:授权需要管理员权限

时间:2017-10-11 13:28:43

标签: php azure office365 azure-active-directory microsoft-graph

我在https://apps.dev.microsoft.com(平台:网站)

中创建了一个应用程序

此应用需要管理员同意某些权限。我记得,在过去,使用管理员帐户访问https://login.microsoftonline.com/{tenant name}/adminconsent?client_id={application id}&state={some state data}&redirect_uri={redirect uri},以便授予访问我们组织中只有管理员可以授予的资源的权限。从那里,用户需要提供用户级别的同意才能使用该应用程序。

现在,我可以使用管理员帐户成功登录,应用程序按预期工作但是我仍然会收到提示,对于用户,请输入以下消息:

You can't access this application APP NAME needs permission to access resources in your organization that only an admin can grant. Please ask an admin to grant permission to this app before you can use it.

Have an admin account? Sign in with that account

Return to the application without granting consent

错误消息为:AADSTS90094: The grant requires admin permission.,似乎没有记录在任何地方..

如果我点击Have an admin account? Sign in with that account并使用管理员帐户登录,则可以使用常规用户帐户再次尝试重新获得上述消息。

enter image description here

修改 所以我将权限剥离到最低限度。 我的申请中的范围现在是:openidprofileuser.read 现在,对于委派权限Mail.SendUser.Read,Microsoft图谱权限。 应用程序权限中没有任何内容,我仍然可以为普通用户获取上述消息! Microsoft的任何人都有关于AADSTS90094错误代码的一些信息吗?

3 个答案:

答案 0 :(得分:2)

好的,所以我最后联系了微软的支持,因为截至此日期,没有关于此错误消息的信息。

简而言之,Microsoft最近在权限方面做了一些更改。过去,如果您的应用需要openidprofileoffline_access中的任何一个,您可以将它们作为范围放在您的应用中,{{1} }。管理员会给予同意,您的应用程序将正常运行。

您现在应该做的是使用https://apps.dev.microsoft.com上的权限镜像您应用的范围,否则您将继续收到该错误消息,因此请确保您拥有现在双方同样的事情,特别是如果你习惯了旧的行为。

现在可以在开发门户网站上为您的应用选择这三个范围/权限(https://apps.dev.microsoft.comopenidprofile)。

答案 1 :(得分:0)

管理员同意端点在动态范围和动态同意方案中没有帮助。

使用管理员同意端点将授予在应用注册门户中注册的权限。您可以找到Microsoft Graph Permissions部分,然后添加您的应用所需的权限。在使用管理员同意端点进行管理员同意后,您的应用可以为租户中的所有用户收集权限,包括管理员限制范围。

答案 2 :(得分:-1)

我正在使用MSAL2.0端点(login.microsoft ...),我正在开发一个Multi-Tenant应用程序。

我的组织有2个租户

其中一个基本上是我们的Dev实例(我拥有全局管理员权限)。我在Tenant注册了我的应用,但我没有管理员权限,并在租户中执行了管理员同意,我可以自行执行同意。我的用户可以成功登录并同意他们所需的资源。

但是,当我从拥有全局管理员权限的帐户创建应用注册(apps.dev.mic上的所有融合应用)时,我的用户的登录信息将获得AADSTS90094 Error

我来到的唯一方式是解决"这个错误是,

在初始登录到应用程序时,范围将为openid,然后用户同意,当完成时,我必须进行另一次登录,并为应用程序定义范围,一切正常。显然UX至少可以说是不可能的。