如果我的应用仅请求User.Read权限,为什么需要管理员授予权限?

时间:2020-03-18 11:29:43

标签: azure azure-active-directory

如您所见,我的新注册应用程序注册是一个仅需要用户登录的应用程序。 超出工作最低要求的任何内容。我没有将其配置为请求任何特殊的权限

enter image description here

当我尝试登录时,出现此消息 “应用程序需要访问您组织中只有管理员才能授予的资源的权限。请先请管理员授予对此应用程序的权限,然后才能使用它”

为什么?应用程序请求的权限只是基本权限。我不明白为什么需要征得管理员同意。

非常感谢

2 个答案:

答案 0 :(得分:0)

任何管理员同意的问题的大多数可能原因,

  1. 仅应用程序权限始终需要租户administrator’s consent。如果您的应用程序请求仅应用程序权限,并且用户尝试登录该应用程序,则会显示一条错误消息,提示用户无法同意。
  2. 某些委派的权限还需要房客管理员的同意。例如,要以登录用户身份写回Azure AD的功能需要租户管理员的同意。

可能的解决方案,

  1. prompt = admin_consent 参数(向admin请求权限)可以用作OAuth2 / OpenID Connect授权请求中的参数,以授予管理员同意。 / li>
  2. 启用admin consent workflow,这使最终用户可以请求访问需要管理员同意的应用程序。
  3. 请参阅Microsoft Graph API indicate which permissions的权限文档,需要管理员同意。

有关更多详细信息,请参阅admin consent endpoint

答案 1 :(得分:0)

用户不同意 User.Read 的两个可能原因:

  1. 用户同意被禁用或受限制。每个客户都可以选择禁用或限制用户对应用程序的同意。例如,在禁用用户同意的租户中,用户不同意任何许可。

    Azure AD > 企业应用> 用户设置> 用户可以同意应用...

  2. 该应用需要分配。如果将某个应用程序配置为要求用户分配才能登录,则不允许用户同意该应用程序。

    Azure AD > 企业应用>(选择应用)> 属性> 需要用户分配吗?