试图更新Azure B2C上的用户时,出现 "权限不足 "的错误。

我正在使用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

我已经给了我的App Directory.Read.All和Directory.ReadWrite.All API权限。

我还需要设置其他权限吗?

更新 创建authProvider的代码如下(不采用用户方式)。

    // Initialize the client credential auth provider
    IConfidentialClientApplication confidentialClientApplication = ConfidentialClientApplicationBuilder
        .Create(config.AppId)
        .WithTenantId(config.Tenant)
        .WithClientSecret(config.ClientSecret)
        .Build();

    ClientCredentialProvider authProvider = new ClientCredentialProvider(confidentialClientApplication);

    // Set up the Microsoft Graph service client with client credentials
    _graphClient = new GraphServiceClient(authProvider);

以及权限的截图。

enter image description here

解决方案:

基于 更新用户权限:

如果你实施 代表用户获得访问权你应该添加一个授权的权限。

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

enter image description here

你应该使用 授权码提供者 以获得 authProvider.

如果你实施 无需用户即可访问你应该添加一个应用程序的权限。

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

enter image description here

而且你应该使用 客户端证书提供者 以获得 authProvider.

请你 笔记 即在Azure AD应用中添加权限后,别忘了点击 “为{你的租户}授予管理同意”。

enter image description here


更新。

你正在尝试更新密码。当更新 passwordProfile 属性,需要以下权限。Directory.AccessAsUser.All,你还没有添加到你的Azure AD应用中。这就是发生此错误的原因。查看详情 此处.

给TA打赏
共{{data.count}}人
人已打赏
未分类

我正在研究Java中的静态变量和实例变量,我无法理解代码的输出。

2022-9-8 16:52:39

未分类

用户输入修改结束日期的倒计时器。

2022-9-8 17:03:17

0 条回复 A文章作者 M管理员
    暂无讨论,说说你的看法吧
个人中心
购物车
优惠劵
今日签到
有新私信 私信列表
搜索