【发布时间】:2017-08-30 00:47:28
【问题描述】:
我正在尝试使用 Microsoft Graph API 来更新 Active Directory 中的另一个用户。
我在https://apps.dev.microsoft.com/ 为用户和应用程序设置了以下权限
我已请求以下范围:
- Directory.ReadWrite.All
- User.ReadWrite.All
- Group.ReadWrite.All
我能够获取目录中所有用户的列表,但是在尝试更新(在本例中为 city)时失败:
GraphServiceClient graphClient = SDKHelper.GetAuthenticatedClient ();
var usersResponse = graphClient.Users.Request ().GetAsync ();
var users = usersResponse.Result;
// hard coding user id for now
var userId = "9a5b83cd-85ff-4ad1-ab2f-b443941a518e";
var user = users.FirstOrDefault (m => m.Id == userId);
if (user != null) {
user.City = "New York";
await graphClient.Me.Request ().UpdateAsync (user);
}
我明白了:
{
Code : Authorization_RequestDenied
Message : Insufficient privileges to complete the operation.
Inner error
}
我登录的用户是目录的全局管理员。
我拿了 JWT 令牌,前往https://jwt.io,这些是我看到的角色:
- Directory.Read.All
- Directory.ReadWrite.All
- Files.ReadWrite
- Group.ReadWrite.All
- 邮件.发送
- User.Read
- User.Read.All
- User.ReadWrite.All
我是否需要其他权限才能做到这一点?
最后,我想创建一个控制台应用程序(不是 Web 应用程序),我可以更新目录中的其他用户信息。但我认为使用 Microsoft 提供的这个示例应用程序是一个好的开始。
【问题讨论】: