Azure active directory Microsoft Graph:“;需要管理员批准”;对于非行政许可所需范围“;User.ReadBasic.All";登录期间

Azure active directory Microsoft Graph:“;需要管理员批准”;对于非行政许可所需范围“;User.ReadBasic.All";登录期间,azure-active-directory,microsoft-graph-api,Azure Active Directory,Microsoft Graph Api,我有以下设置: 具有应用程序注册的AAD目录A。应用程序注册被标记为多租户应用程序,默认情况下没有请求的权限: 在登录过程中,我的webapp将重定向到Microsoft登录,如下所示(删除nonce和重定向uri): 范围包括: openid 侧面图 电子邮件 用户阅读 脱机访问 User.ReadBasic.All 我的测试用户位于AAD目录B中(并且没有任何只有管理员才能同意应用程序的特殊设置)。当我尝试登录到我的应用程序时,结果如下: 作用域“User.ReadBasic.All

我有以下设置:

具有应用程序注册的AAD目录A。应用程序注册被标记为多租户应用程序,默认情况下没有请求的权限:

在登录过程中,我的webapp将重定向到Microsoft登录,如下所示(删除nonce和重定向uri):

范围包括:

  • openid
  • 侧面图
  • 电子邮件
  • 用户阅读
  • 脱机访问
  • User.ReadBasic.All
我的测试用户位于AAD目录B中(并且没有任何只有管理员才能同意应用程序的特殊设置)。当我尝试登录到我的应用程序时,结果如下:

作用域“User.ReadBasic.All”,但不知何故,当我删除这个请求的作用域时,用户可以在没有任何管理员同意的情况下登录到应用程序

问题是:为什么管理员同意显示为“User.ReadBasic.All”范围

目标是,一个“普通”用户可以登录到我们的应用程序,而无需经过租户范围的管理员批准。
“多租户”应用程序的“需要管理员同意”是否有所不同?

是的,正如@Sruthi J所说,当您在同意和权限中选择不允许用户同意选项卡时,所有应用程序都必须需要管理员同意。尝试选择允许用户同意应用选项卡以解决您的问题

1.以全局管理员身份登录Azure门户

2.选择Azure Active Directory>企业应用程序>同意和权限>用户同意设置

3.在“应用程序的用户同意”下,选择要为所有用户配置的同意设置

4.选择“保存”保存您的设置


请参阅:多租户场景中的。

如果这是来自其他租户的用户第一次登录,并且您的应用程序需要获得管理员同意的权限,则第一个登录的用户必须是管理员

您应该具有某种类型的入职流程,其中在授权URL中包含prompt=admin\u同意,如上所述。虽然这次您将使用common而不是租户id/域:

https://login.microsoftonline.com/common/oauth2/authorize?response_type=code&client_id=id&redirect_uri=https%3A%2F%2Flocalhost%3A44307%2F&prompt=admin_consent

请参阅此

可能因为以下原因而不允许用户同意

您可以通过查看审核日志(在“AAD目录B”中):Azure门户>Azure AD>审核日志(在“监控”类别下)来确认是否存在这种情况


如果由于基于风险的保护而不允许用户同意,则会在“ApplicationManagement”类别下发出失败的“同意应用程序”事件,表示由于基于风险的检测而失败。

Azure Active Directory->企业应用程序->用户设置->用户可以同意应用程序代表其访问公司数据如果该选项设置为“否”,则普通用户将无权同意其他租户的应用程序。“用户可以同意应用程序代表其访问公司数据”设置为“是”,“用户可以同意应用程序访问其拥有的组的公司数据”设置为“是”,并且选择了“允许用户同意应用程序”这两个选项-因此我真的不确定为什么“管理员批准”会弹出“user.ReadBasic.All”“范围:-/Missing:User.Read不会触发“管理员批准”“用户可以同意应用程序代表其访问公司数据”设置为“是”“用户可以同意应用程序访问其拥有的组的公司数据”设置为“是”,并且选择了“允许用户同意应用程序”—因此我真的不确定为什么选择“管理员批准”弹出“User.ReadBasic.All”范围:-/fuzzing:User.Read不会触发“管理员批准”。这是有道理的,但是上面列出的所有应用程序权限都不需要管理员同意,或者我是否遗漏了什么?是的,某些权限不需要管理员同意。请参考这个
https://login.microsoftonline.com/common/oauth2/authorize?response_type=code&client_id=id&redirect_uri=https%3A%2F%2Flocalhost%3A44307%2F&prompt=admin_consent