问题
通过ADAL为Microsoft Graph API生成访问令牌时,Graph API不接受令牌 .
{
"odata.error": {
"code": "Authorization_RequestDenied",
"message": {
"lang": "en",
"value": "Insufficient privileges to complete the operation."
}
}
}
应用程序的功能
应用程序应读取租户的所有用户 . 应用程序配置为具有 User.Read.All
权限 . 应用程序同意由租户授予,其中应该从中读取用户 - 应用程序确实在Azure门户中显示特权 .
到目前为止我有什么
该应用程序几天前工作,我什么都没改变 . 其他应用程序使用相同的方式来验证工作 .
-
重新创建AAD应用程序没有帮助
-
重新安装NuGet包没有帮助
-
将login.windows.net的权限更改为login.microsoftonline.com没有帮助
-
令牌生成不适用于客户端机密,也不适用于证书
-
解码生成的JWT标记会显示操作所需的权限
1 回答
解决方案
看来,微软的文档不正确 . 列出用户需要
Directory.Read
权限 .更新
根据微软的说法,目前尚不清楚,如果这是Graph API中的错误或文档是错误的 .
一个问题在Github here开放 .
更新2
此问题已在2017年5月的Graph API更新中得到修复 .