Man*_*har 3 azure office365 azure-active-directory microsoft-graph
我搜索了我发现的错误,没有找到任何匹配的问题.所以发帖问题.感谢是否有人提供了一些指导.
我的目标是在桌面客户端中访问图形API.我已经开始使用fiddler进行实验了.
请求令牌并使用Authorization标头中的令牌调用图API,获取以下错误.
https://graph.microsoft.com/v1.0/users
119
{
"error": {
"code": "Authorization_IdentityNotFound",
"message": "The identity of the calling application could not be established.",
"innerError": {
"request-id": "4c3a7bc6-e3d8-453c-adc9-5a12fec3b0ee",
"date": "2016-05-11T00:46:23"
}
}
}
Run Code Online (Sandbox Code Playgroud)may*_*ʎɐɯ 10
就我而言,在使用 Quickstart(步骤 1),然后自动配置 .net 示例(步骤 2),然后下载代码示例(步骤 3)后,我遇到了相同的错误,如下图所示。
除第 3 步外,所有步骤均已成功完成。Microsoft 代码在项目中成功生成、生成应用程序 ID 和应用程序机密,但租户设置为 common,appsetting.json如下图所示。
我认为这是一个有效的事情,但后来发现这导致了问题。
解决方案:我复制了目录(租户)ID,而不是用租户 ID 替换 common,并且它起作用了。我不确定这是否是 Azure 快速入门代码生成中的错误。
此示例帮助我了解了仅限应用程序权限的流程. https://blogs.msdn.microsoft.com/tsmatsuz/2016/10/07/application-permission-with-v2-endpoint-and-microsoft-graph/
关键要点:
请注意下面请求中的范围是https://graph.microsoft.com/.default
POST https://login.microsoftonline.com/{tenantname}.onmicrosoft.com/oauth2/v2.0/token
Content-Type: application/x-www-form-urlencoded
grant_type=client_credentials&client_id=6abf3364-0a60-4603-8276-e9abb0d843d6&client_secret=JfgrNM9CcW...&scope=https%3A%2F%2Fgraph.microsoft.com%2F.default
Run Code Online (Sandbox Code Playgroud)
使用令牌请求相关的图形资源,例如:
获取https://graph.microsoft.com/v1.0/users/demouser01@[tenant-name].onmicrosoft.com/drive/root/children
接受:application/json
授权:持票人eyJ0eXAiOi
对我来说,我没有给予管理员同意。这是关键的一步。我的错误是认为通过授予应用程序权限,这是给予管理员同意,但这不是一回事。
从本网站的第 3 步开始:https : //developer.microsoft.com/en-us/graph/docs/concepts/auth_v2_service
我只是在填写租户和客户 ID 后将他们的电话粘贴到浏览器中,然后登录,一切正常。
GET https://login.microsoftonline.com/{tenant}/adminconsent
?client_id=6731de76-14a6-49ae-97bc-6eba6914391e
&state=12345
&redirect_uri=http://localhost/myapp/permissions
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
8322 次 |
| 最近记录: |