C# 尝试在Azure B2C上更新用户会给我一个“提示”;特权不足”;错误

C# 尝试在Azure B2C上更新用户会给我一个“提示”;特权不足”;错误,c#,azure,azure-ad-b2c,C#,Azure,Azure Ad B2c,我正在使用B2C和MS Graph API在B2C中创建新用户,但是当我尝试使用下面的更新命令更新用户时: await _graphClient.Users[b2cUser.Id] .Request() .UpdateAsync(CreateGraphUserForUpdateCreate(extensionInstance, user)); 我得到一个错误: Mic

我正在使用B2C和MS Graph API在B2C中创建新用户,但是当我尝试使用下面的更新命令更新用户时:

                    await _graphClient.Users[b2cUser.Id]
                    .Request()
                    .UpdateAsync(CreateGraphUserForUpdateCreate(extensionInstance, user));
我得到一个错误:

    Microsoft.Graph.ServiceException: 'Code: Authorization_RequestDenied
Message: Insufficient privileges to complete the operation.
Inner error:
    AdditionalData:
    request-id: 6494a468-e7e2-41ed-a39c-527715656737
    date: 2020-04-23T11:14:13
我已授予我的应用程序Directory.Read.All和Directory.ReadWrite.All API权限

我还需要设置其他权限吗

更新 创建authProvider的代码如下(无用户方法):

和权限的屏幕截图:

基于:

如果实施,则应添加其中一个委派权限:

User.ReadWrite, User.ReadWrite.All, User.ManageIdentities.All, Directory.ReadWrite.All, Directory.AccessAsUser.All
User.ReadWrite.All, User.ManageIdentities.All, Directory.ReadWrite.All

您应该使用来获取
authProvider

如果实现,则应添加以下应用程序权限之一:

User.ReadWrite, User.ReadWrite.All, User.ManageIdentities.All, Directory.ReadWrite.All, Directory.AccessAsUser.All
User.ReadWrite.All, User.ManageIdentities.All, Directory.ReadWrite.All

您应该使用来获取
authProvider

注意在Azure AD app中添加权限后,不要忘记单击“为{您的租户}授予管理员许可”


更新:

您正在尝试更新密码。更新
passwordProfile
属性时,需要以下权限:
Directory.AccessAsUser.All
,您尚未将其添加到Azure AD应用程序中。这就是为什么会发生这种错误。请参阅详细信息。

基于:

如果实施,则应添加其中一个委派权限:

User.ReadWrite, User.ReadWrite.All, User.ManageIdentities.All, Directory.ReadWrite.All, Directory.AccessAsUser.All
User.ReadWrite.All, User.ManageIdentities.All, Directory.ReadWrite.All

您应该使用来获取
authProvider

如果实现,则应添加以下应用程序权限之一:

User.ReadWrite, User.ReadWrite.All, User.ManageIdentities.All, Directory.ReadWrite.All, Directory.AccessAsUser.All
User.ReadWrite.All, User.ManageIdentities.All, Directory.ReadWrite.All

您应该使用来获取
authProvider

注意在Azure AD app中添加权限后,不要忘记单击“为{您的租户}授予管理员许可”


更新:


您正在尝试更新密码。更新
passwordProfile
属性时,需要以下权限:
Directory.AccessAsUser.All
,您尚未将其添加到Azure AD应用程序中。这就是为什么会发生这种错误。请参阅详细信息。

您正在使用哪种权限?授权权限还是应用程序权限?请提供您在Azure Portal中分配的API权限的屏幕截图。您使用哪种权限?授权权限还是应用程序权限?请提供在Azure Portal中分配的API权限的屏幕截图。感谢您的回复,我已经用额外的详细信息更新了原始帖子。在我的例子中,这是一个正在进行更改的后端服务,因此我使用ClientCredentialProvider。我不知道为什么在更新用户时会出现错误,但在一开始读取/创建用户时不会出现错误。@Slicc您可以共享
CreateGraphUserForUpdateCreate(extensionInstance,user)的代码吗?
?你想更新哪些属性?啊,这是有道理的,因为我试图更改密码,而实际上我并不想这样做。感谢您的建议,检查属性@谢谢你的回复。我会根据我们的讨论更新答案。谢谢你的回复,我已经用额外的细节更新了原始帖子。在我的例子中,这是一个正在进行更改的后端服务,因此我使用ClientCredentialProvider。我不知道为什么在更新用户时会出现错误,但在一开始读取/创建用户时不会出现错误。@Slicc您可以共享
CreateGraphUserForUpdateCreate(extensionInstance,user)的代码吗?
?你想更新哪些属性?啊,这是有道理的,因为我试图更改密码,而实际上我并不想这样做。感谢您的建议,检查属性@谢谢你的回复。我将根据我们的讨论更新答案。