Azure应用程序错误地请求管理员同意?

Azure应用程序错误地请求管理员同意?,azure,oauth-2.0,azure-active-directory,microsoft-graph-api,Azure,Oauth 2.0,Azure Active Directory,Microsoft Graph Api,我希望有人能对我在Microsoft Azure Portal()中新注册的应用程序遇到的问题有所了解 当我获得以下对话框时,我的登录问题 错误代码和消息出现在右下角 AADSTS90094:此操作只能由管理员执行。以管理员身份注销并登录,或与组织的管理员联系 就配置而言,我相信我的设置不需要管理员同意,但是我可能缺少一些东西 我的应用程序配置为 Id令牌,单租户(web)应用程序 已委派的用户同意权限,无管理员权限 对于企业应用程序,配置设置为 允许用户登录:Yes 需要用户分配:Ye

我希望有人能对我在Microsoft Azure Portal()中新注册的应用程序遇到的问题有所了解

当我获得以下对话框时,我的登录问题

错误代码和消息出现在右下角

AADSTS90094:此操作只能由管理员执行。以管理员身份注销并登录,或与组织的管理员联系

就配置而言,我相信我的设置不需要管理员同意,但是我可能缺少一些东西

我的应用程序配置为

Id令牌,单租户(web)应用程序

已委派的用户同意权限,无管理员权限

对于企业应用程序,配置设置为

  • 允许用户登录:
    Yes
  • 需要用户分配:
    Yes
  • 用户可见:
    Yes
  • 已向4个用户添加了
    默认访问权限
    角色
  • 允许用户请求访问此应用程序:
    (分配时)
最后,在企业应用程序-用户设置配置下的azure目录中,我已将公司数据用户同意设置为

当我导航到我的应用程序URL或从
myapps.microsoft.com
中的应用程序时,两者都会显示上面的对话框,请求管理员同意

如果不需要,我不想授予管理员许可,因为这似乎有点像使用大锤来解决问题

我觉得我要么错过了一些重要的事情,要么做了一些愚蠢的事情——请帮助我,如果我能提供更多信息,请告诉我

编辑1.1:

我的身份验证请求URL是:
https://login.microsoftonline.com//oauth2/v2.0/authorize?client_id=&redirect_uri=&response_mode=form_post&response_type=code id\u token&scope=openid电子邮件配置文件脱机\u访问用户。Read User.ReadBasic.AllMail.ReadWrite&state=OpenIdConnect.AuthenticationProperties=&nonce=&x-client-SKU=ID\u NET461&x-client-ver=5.4.0.0


(我正在使用ASP.NET MVC与Microsoft的OpenId Connect身份验证库相结合)

当用户同意不需要分配的应用程序时(在允许用户同意的租户中,以及对于只请求不需要管理员同意的权限的应用程序),会发生两种情况:

  • 将记录应用程序、用户和所请求的委托权限的许可授予
  • 用户以“默认”应用程序角色分配给应用程序
  • 第二步似乎令人惊讶,但它有一个简单的作用:它确保用户在Azure广告访问面板()中看到他们同意的应用程序。(Azure广告访问面板将向用户显示分配给他们的所有应用。)

    如果用户可以通过触发用户同意而导致自己被分配,则会破坏“需要用户分配”控制的目的。因此,当前,当应用程序被设置为需要用户分配时,用户根本不允许同意该应用程序

    今天,您有两个选择:

  • 请管理员为应用程序授予租户范围的许可(例如,企业应用程序>权限>授予管理员许可,或应用程序注册>API权限>授予管理员许可)
  • 将应用程序配置为不需要用户分配,并通过选中“角色”声明更新应用程序代码以要求将用户分配到应用程序角色

  • 您的身份验证请求URL是什么?您好,Joy,我的身份验证请求URL是(我正在使用ASP.NET MVC与Microsoft的OpenId Connect身份验证库相结合),您可以提供您正在使用的URL参数吗?@JoyWang我已经用带参数的完整URL更新了我的问题(这是Microsoft framework在点击我的应用程序URL后重定向到的URL)尝试将
    &prompt=approve
    附加到身份验证请求URL,请参阅我已根据您的回答将
    所需用户分配
    切换为
    关闭
    -这解决了问题,现在用户可以给予同意,然后登录。我将调整我的应用程序代码以补偿用户的角色正确登录时。非常感谢@Philippe。