Azure active directory Microsoft Graph:“;需要管理员批准”;对于非行政许可所需范围“;User.ReadBasic.All";登录期间
我有以下设置: 具有应用程序注册的AAD目录A。应用程序注册被标记为多租户应用程序,默认情况下没有请求的权限: 在登录过程中,我的webapp将重定向到Microsoft登录,如下所示(删除nonce和重定向uri): 范围包括: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
- openid
- 侧面图
- 电子邮件
- 用户阅读
- 脱机访问
- 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