Microsoft Graph:登录期间非管理员同意所需范围“User.ReadBasic.All”的“需要管理员批准”

Rob*_*sig 5 azure-active-directory microsoft-graph-api

我有以下设置:

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

在此输入图像描述

在登录期间,我的 web 应用程序会像这样重定向到 Microsoft 登录(随机数和重定向 uri 被删除):

https://login.microsoftonline.com/common/oauth2/v2.0/authorize?
client_id=05f0df69-2f61-4b41-91ff-31656787f9d3
&redirect_uri=https%3A%2F%2F....azurewebsites.net%2Fids%2Foidc-signin-office365auth
&response_type=code%20id_token&scope=openid%20profile%20email%20User.Read%20offline_access%20User.ReadBasic.All
&response_mode=form_post
&nonce=...
Run Code Online (Sandbox Code Playgroud)

范围是:

  • 开放ID
  • 轮廓
  • 电子邮件
  • 用户.阅读
  • 离线访问
  • 用户.ReadBasic.All

我的测试用户位于 AAD 目录 B 中(并且没有任何特殊设置,只有管理员才能同意应用程序)。当我尝试登录我的应用程序时,结果如下:

在此输入图像描述

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

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

目标是“普通”用户可以登录我们的应用程序,而无需麻烦管理员的租户广泛批准。对于“多租户”应用程序,“需要管理员同意”是否有所不同?

Car*_*hao 3

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

\n

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

\n

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

\n

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

\n

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

\n

在此输入图像描述

\n

请参阅:这里

\n