【问题标题】:Got 'Insufficient privileges to complete the operation.'. MS Graph Api得到“权限不足,无法完成操作。”。 MS 图形 API
【发布时间】:2019-10-02 09:34:50
【问题描述】:

我对 Microsoft Graph API 有疑问。

  1. 我在 Azure 门户中注册了一个新应用
  2. 添加了 Application.ReadWrite.All 和 Application.ReadWrite.OwnedBy 应用程序权限
  3. 点击管理员同意按钮

empty

之后,我尝试通过

获取访问令牌
POST https://login.microsoftonline.com/12fb9222-8b6e-4006-a483-a87fa44621c3/oauth2/v2.0/token
client_id=dc07d452-9ce1-4b0f-a1a6-4fb5b230a4bb
scope=https://graph.microsoft.com/.default
grant_type=client_credentials
client_secret={client_secret}

我得到了令牌。 令牌看起来像这样:

{
  "aud": "https://graph.microsoft.com",
  "iss": "https://sts.windows.net/12fb9222-8b6e-4006-a483-a87fa44621c3/",
  "iat": 1570007742,
  "nbf": 1570007742,
  "exp": 1570011642,
  "aio": "42VgYHi/n737QYBx8DrOTW5Ft0skAQ==",
  "app_displayname": "testapp",
  "appid": "dc07d452-9ce1-4b0f-a1a6-4fb5b230a4bb",
  "appidacr": "1",
  "idp": "https://sts.windows.net/12fb9222-8b6e-4006-a483-a87fa44621c3/",
  "oid": "24d9cd08-efaf-497b-b023-920cc208400a",
  "roles": [
    "Application.ReadWrite.OwnedBy",
    "Application.ReadWrite.All",
  ],
  "sub": "24d9cd08-efaf-497b-b023-920cc208400a",
  "tid": "12fb9222-8b6e-4006-a483-a87fa44621c3",
  "uti": "f38JDx5iw0Kkp16mnZIqAA",
  "ver": "1.0",
  "xms_tcdt": 1569224302
}

之后,我正在执行

GET https://graph.microsoft.com/beta/applications/bb4c22ea-632e-45d8-ad0f-2ba39cf399c1

我正在获取应用程序属性。

最后我想更新我的应用属性,我正在尝试执行

PATCH https://graph.microsoft.com/beta/applications/bb4c22ea-632e-45d8-ad0f-2ba39cf399c1
{
    "displayName": "displayName"
}

我得到:

{
  "error": {
    "code": "Authorization_RequestDenied",
    "message": "Insufficient privileges to complete the operation.",
    "innerError": {
      "request-id": "1565bb72-8392-4ca7-bb20-02b40f5603bd",
      "date": "2019-10-02T09:23:57"
    }
  }
}

我很困惑。我有 API 更新应用程序的权限,但出现错误,请帮助。

【问题讨论】:

  • 好吧,这确实很奇怪。我在你的过程中找不到任何错误,令牌看起来应该可以工作。
  • 我刚刚使用该令牌创建了一个新应用程序,但我仍然无法更新该应用程序。

标签: azure-active-directory microsoft-graph-api


【解决方案1】:

这似乎是一个错误,我尝试使用客户端凭据并授予Application.ReadWrite.All and Application.ReadWrite.OwnedBy 权限。我遇到了和你一样的错误。

然后我尝试使用用户登录的委托权限,它起作用了。您可以关注此article 或使用Microsoft Graph explorer 调用api。

注意:

Microsoft Graph 中 /beta 版本下的 API 可能会发生变化。 不支持在生产应用程序中使用这些 API。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2017-11-03
    • 2018-01-24
    • 2017-08-03
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多