【问题标题】:Graph Api - 401 Unauthorised图形 API - 401 未经授权
【发布时间】:2015-10-19 10:05:39
【问题描述】:

刚刚开始使用 graph/office API,哇,这是一个雷区!

只是想知道是否有人可以给我任何建议?当我尝试联系 https://graph.microsoft.com/beta/me/files 时收到 401。

我的JWT如下:

{
  "aud": "https://graph.windows.net/",
  "iss": "https://sts.windows.net/916970f4-e570-4036-a353-8ae647af1d3e/",
  "iat": 1444794383,
  "nbf": 1444794383,
  "exp": 1444798283,
  "ver": "1.0",
  "tid": "916970f4-e570-4036-a353-8ae647af1d3e",
  "oid": "c454b826-612f-4525-8995-87f1a24dc3df",
  "sub": "c454b826-612f-4525-8995-87f1a24dc3df",
  "idp": "https://sts.windows.net/916970f4-e570-4036-a353-8ae647af1d3e/",
  "appid": "568d0906-4131-4b97-8b08-9efdbe1636c4",
  "appidacr": "1"
}

我的令牌以一种相当奇怪的方式获得...我有一个 web 项目 azure AD,他的令牌用于获取 web api Azure Ad 令牌,然后该令牌用于生成图形 api jwt,如上所示.

下面是它的工作原理:

【问题讨论】:

    标签: c# asp.net-mvc azure asp.net-web-api office365


    【解决方案1】:

    抱歉,您在这里遇到了问题。两件事......

    1. 您会收到 401,因为令牌的受众适用于 Azure AD Graph API,但它需要适用于 Office 365 统一 API,因为这是 2 个不同的 API。要获取统一 API 的令牌,您需要在令牌获取请求中指定资源为https://graph.microsoft.com。基本上,令牌不能针对不同的服务互换使用 - 令牌是特定于受众/资源的。我们应该有一些额外的信息和示例在这里http://dev.office.com/unifiedapis
    2. Office 365 统一 API 仅支持代码流(也称为应用程序+用户或委托流)。您的令牌似乎是客户端凭据流令牌(即仅应用程序 - 没有用户上下文)。使用统一的 api 尚无法实现这种令牌/流,但这是我们正在努力的事情。请继续关注。

    希望这会有所帮助,

    【讨论】:

      猜你喜欢
      • 2020-04-10
      • 1970-01-01
      • 2019-03-07
      • 2017-09-27
      • 2014-01-02
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多