图Api - 401未经授权

时间:2015-10-14 04:10:39

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

刚开始使用图表/办公室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,如上所示

下面是怎么回事:

enter image description here

1 个答案:

答案 0 :(得分:1)

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

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