【问题标题】:Admin consent does not work for scope User.Read.All in v2 App管理员同意不适用于 v2 应用程序中的范围 User.Read.All
【发布时间】:2017-02-27 07:54:54
【问题描述】:

我从这里下载了 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 仍会导致“403 禁止”。 Fiddler 中的错误详情显示:

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

该请求中的 JWT Bearer 令牌包含我正确的租户 ID 和一个角色:“User.Read.All”。

我的账号是这个租户的全局管理员,可以在graph.microsoft.io上查询用户。

This response 日期为 6 月 30 日,表明尚无法将 admin_consent 与 App Model v2 一起使用。然而,我下载的示例可以追溯到 9 月下旬,并且准确地显示了这种情况,所以我希望它同时得到支持。

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

【问题讨论】:

    标签: azure-active-directory msal


    【解决方案1】:

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

    上面写着:

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

    如果您选择Delegated permissions而不是Application permissions,则在运行示例时会出现以下错误:

    Authorization_RequestDenied
    Insufficient privileges to complete the operation.
    

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

    【讨论】:

    • 我不确定,但我认为 Azure 门户以及文档同时已更新,因此不太可能出现应用程序与委派权限错误。
    【解决方案2】:

    你似乎做的一切都是正确的。我们有一个关于这个主题的活跃问题,如果你想参与,请加入 GitHub:https://github.com/Azure-Samples/active-directory-dotnet-daemon-v2/issues/1

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多