我将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?如果是这样,有人可以帮我找出问题所在吗?感谢。
答案 0 :(得分:1)
在示例的说明中,如果您不使用脚本,请密切注意 Register the client app (daemon-console)
中的第 5 步它说的是:
<块引用>如果您选择委派权限而不是应用程序权限,则在运行示例时会出现以下错误:
Authorization_RequestDenied
Insufficient privileges to complete the operation.
如果你不注意,很容易犯这个简单的错误。
答案 1 :(得分:0)
你好像做得对。我们对此主题有一个积极的问题,如果您想参与,请加入GitHub:https://github.com/Azure-Samples/active-directory-dotnet-daemon-v2/issues/1