我正在使用Microsoft Graph API访问我的Azure B2C租户。
下面是我的代码:
var scopes = new[] { "https://graph.microsoft.com/.default" };
var clientSecretCredential = new ClientSecretCredential(_azureB2CSettings.Value.TenantId,
_azureB2CSettings.Value.AppId.ToString(), _azureB2CSettings.Value.ClientSecret);
var graphClient = new GraphServiceClient(clientSecretCredential, scopes);
var user = await graphClient.Users[azureVetOsId.ToString()].Request().GetAsync();
if (user == null)
{
throw new AzureB2CUserNotFound(azureVetOsId.ToString());
}
user.PasswordProfile = new PasswordProfile()
{
Password = newPassword,
ForceChangePasswordNextSignIn = false,
};
await graphClient.Users[azureVetOsId.ToString()].Request().UpdateAsync(user);
get操作工作得很好,我得到了用户,可以看到所有数据。我甚至在几秒钟前用Graph API创建了用户,没有问题。现在,UpdateAsync Requests get是一个
Message: Insufficient privileges to complete the operation.
我检查了Azure中应用程序注册的权限:
这似乎很好,User.ReadWrite.All设置正确。
有什么想法吗
1条答案
按热度按时间g52tjvyc1#
发现问题:除了委派的权限之外,您还需要是用户管理员,并作为您在此处使用的应用程序/用户的角色:
除此之外,代码永远不应该在更新中发送加载的对象,而只是要更新的属性: