我从这里下载了 Azure 示例以“使用 v2.0 端点构建多租户守护程序”: https ://github.com/Azure-Samples/active-directory-dotnet-daemon-v2
我在 中注册了应用程序apps.dev.microsoft.com
,将应用程序权限范围设置为 User.Read.All,并在代码中的 Startup.Auth.cs 中替换了应用程序 ID 和生成的密码密码。
示例代码运行良好,只是管理员同意授权似乎不起作用。
中的代码AccountController.RequestPermissions()
成功构建并发送管理员同意请求。同意页面显示正确的范围:“阅读所有用户的完整个人资料”。提供同意后,我被重定向到https://localhost:44316/Account/GrantPermissions?admin_consent=True&tenant=my-tenant-id,表明授权成功。之后,我还在 Azure 门户上的企业应用程序中看到了该应用程序。
但是,对https://graph.microsoft.com/v1.0/users的调用UsersController.Index
仍会导致“403 Forbidden”。Fiddler 中的错误详细信息显示:
"code": "Authorization_RequestDenied",
"message": "Insufficient privileges to complete the operation."
该请求中的 JWT Bearer 令牌包含我正确的租户 ID 和一个角色:“User.Read.All”。
我的账号是这个租户的全局管理员,可以在graph.microsoft.io上查询用户。
此响应日期为 6 月 30 日,表明尚无法将 admin_consent 与 App Model v2 一起使用。然而,我下载的示例可以追溯到 9 月下旬,并且准确地显示了这种情况,所以我希望它同时得到支持。
App Model v2 是否已支持 admin_consent?如果是这样,谁能帮我找出问题所在?谢谢。