Azure REST API - 调用列表应用程序 (GraphRBAC) 焦点模式时出现 401 错误

Azure REST API - 401 error when calling List Applications (GraphRBAC) focus Mode

我正在尝试使用 Azure REST 测试可能性的艺术 API,我偶然发现了一个奇怪的问题

我无法列出应用程序,这对我们来说实际上很重要,因为我们正在尝试自动化其中的一些。

https://docs.microsoft.com/en-us/rest/api/graphrbac/applications/list

如果我尝试 "Try It" Link,我会收到 401 错误

{
  "odata.error": {
    "code": "Authentication_MissingOrMalformed",
    "message": {
      "lang": "en",
      "value": "Access Token missing or malformed."
    },
    "requestId": "a9758d8f-194f-4089-afd9-4b1d3ffb21d7",
    "date": "2018-10-25T18:22:46"
  }
}

请求确实有不记名令牌,我可以使用 Fiddler 查看它。

如果我尝试列出网络应用程序,这很好

https://docs.microsoft.com/en-us/rest/api/appservice/webapps/list

备案,用户是全局管理员

有什么想法吗?

TIA

正如错误所说,问题出在所提供的令牌上。您可以轻松检查解码后的令牌并在 https://jwt.ms or https://jwt.io

等工具中查看确切的声明

我认为这可能是 'aud' i.e. audience claim 的问题,因为您提到该令牌对列表 Web 应用程序 api 有效,但对列表应用程序无效。

对于列表 Web 应用程序,您可能正在为 https://management.core.windows.net/ 之类的资源获取令牌,因此获取的令牌的 'aud' 也将获得相同的值。

检查您在为列表应用程序调用获取令牌时为 resource 指定的值。由于您正在尝试调用 Azure AD Graph API.. 资源值应为 'https://graph.windows.net'。任何其他值都可能导致此类问题。

如果观众价值观正确但您仍然遇到问题,请编辑您的问题以包含更多details/actual与您如何获取相关令牌相关的代码。