管理员同意不适用于v2 App中的范围User.Read.All

时间:2016-10-18 06:55:54

标签: azure-active-directory msal

我将Azure示例下载到'使用v2.0端点构建多租户守护程序'从这里: https://github.com/Azure-Samples/active-directory-dotnet-daemon-v2

我在apps.dev.microsoft.com中注册了应用程序,将Application Permission范围设置为User.Read.All,并在代码中的Startup.Auth.cs中替换了Application ID和生成的密码secret。

示例代码运行正常,但管理员同意授权似乎不起作用。

AccountController.RequestPermissions()中的代码成功构建并发送管理员同意请求。同意页面显示正确的范围:"阅读所有用户'完整档案"。在获得同意后,我被重定向到https://localhost:44316/Account/GrantPermissions?admin_consent=True&tenant=my-tenant-id,表明授权成功。此后,我还看到应用程序在Azure门户上的企业应用程序中显示。

然而,UsersController.Index中对https://graph.microsoft.com/v1.0/users的通话仍然会导致“禁止”#39; Fiddler中的错误细节显示:

"code": "Authorization_RequestDenied", "message": "Insufficient privileges to complete the operation."

该请求中的JWT Bearer令牌拥有我正确的租户ID和单个角色:" User.Read.All"。

我的帐户是此租户的全局管理员,可以在graph.microsoft.io上查询用户。

6月30日的

This response表示尚无法在App Model v2中使用admin_consent。我下载的样本是从9月下旬开始的,并且正好显示了这种情况,所以我希望它同时得到支持。

App Model v2中是否已支持admin_consent?如果是这样,有人可以帮我找出问题所在吗?感谢。

2 个答案:

答案 0 :(得分:1)

在示例的说明中,如果您不使用脚本,请密切注意 Register the client app (daemon-console)

中的第 5 步

它说的是:

<块引用>
  1. 在应用页面列表中,选择API 权限
  • 点击添加权限按钮,然后
  • 确保选择了 Microsoft API 标签
  • 常用的 Microsoft API 部分,点击 Microsoft Graph
  • 应用程序权限部分,确保检查了正确的权限: User.Read.All
  • 选择添加权限按钮

如果您选择委派权限而不是应用程序权限,则在运行示例时会出现以下错误:

Authorization_RequestDenied
Insufficient privileges to complete the operation.

如果你不注意,很容易犯这个简单的错误。

答案 1 :(得分:0)

你好像做得对。我们对此主题有一个积极的问题,如果您想参与,请加入GitHub:https://github.com/Azure-Samples/active-directory-dotnet-daemon-v2/issues/1