我正在使用Graph API调用来获取组织中所有用户的详细信息。
function string getusers(){
var client1 = new RestClient("https://graph.microsoft.com/v1.0/users");
var request1 = new RestRequest(Method.GET);
request1.AddHeader("Content-Type", "application/json");
request1.AddHeader("Authorization", "Bearer " + token);
request1.AddHeader("Cache-Control", "no");
IRestResponse response1 = client1.Execute(request1);
return response1.Content.toString();
}
我正在使用此API调用,但它返回与身份验证相关的错误:
{
"error": {
"code": "Authorization_RequestDenied",
"message": "Insufficient privileges to complete the operation.",
"innerError": {
"request-id": "16a2e8d3-a93d-4197-9ef9-8b67a705f0e5",
"date": "2018-02-17T19:51:46"
}
}
}
但是当我改变时
var client1 = new RestClient("https://graph.microsoft.com/v1.0/users");
到
var client1 = new RestClient("https://graph.microsoft.com/v1.0/me");
然后它返回有关当前登录用户的所有详细信息。
在没有任何帮助或参考的情况下解决它真的很复杂。
答案 0 :(得分:1)
您似乎已请求user.read
范围。这样您就可以阅读当前用户的个人资料(/me
),但不能阅读租户中的其他用户(/users
)。
您还需要User.ReadBasic.All
请求您的身份验证请求。这将允许您阅读租户中任何用户的基本配置文件信息。