Microsoft Graph API: 权限不足,无法完成操作
Microsoft Graph API: Insufficient privileges to complete the operation
问题
通过 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 令牌显示操作所需的权限
解决方案
看来,微软的文档不正确。列出用户需要 Directory.Read
权限。
更新
根据 Microsoft 的说法,尚不清楚这是 Graph API 中的错误还是文档有误。
在 Github here.
处打开了一个问题
更新 2
此问题已在 2017 年 5 月 API 的图表更新中得到修复。
问题
通过 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 令牌显示操作所需的权限
解决方案
看来,微软的文档不正确。列出用户需要 Directory.Read
权限。
更新
根据 Microsoft 的说法,尚不清楚这是 Graph API 中的错误还是文档有误。
在 Github here.
更新 2
此问题已在 2017 年 5 月 API 的图表更新中得到修复。