刚刚开始使用 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"
}
我的 token 是以一种相当奇怪的方式获取的...我有一个 Web 项目 azure AD,其 token 用于获取 Web api Azure Ad token ,然后该 token 用于生成图形 api jwt,如上所示.
这是如何工作的:
最佳答案
抱歉,您在这里遇到了问题。有两件事...
- 您收到 401 是因为 token 的受众适用于 Azure AD Graph API,但它需要适用于 Office 365 统一 API,因为这是 2 个不同的 API。如需获取统一API的Token,您需要在Token获取请求中指定资源为 https://graph.microsoft.com 。基本上, token 不能互换地用于不同的服务 - token 是特定于受众/资源的。我们应该在这里有一些额外的信息和示例 http://dev.office.com/unifiedapis .
- Office 365 统一 API 仅支持代码流(也称为应用+用户或委托(delegate)流)。您的 token 似乎是客户端凭据流 token (即仅限应用程序 - 无用户上下文)。这种 token /流对于统一的 API 来说尚不可能,但这是我们正在努力的事情。请继续关注。
希望这有帮助,
关于c# - 图 Api - 401 未经授权,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33116473/