Microsoft graph api 更新用户';Azure AD中的s accountEnabled属性?

Microsoft graph api 更新用户';Azure AD中的s accountEnabled属性?,microsoft-graph-api,Microsoft Graph Api,我们正在使用Microsoft Graph API的SDK尝试更新Azure广告中用户的accountEnabled属性 我们使用的代码如下所示: await graphClient.Users[userId] .Request() .UpdateAsync( new User() { AccountEna

我们正在使用Microsoft Graph API的SDK尝试更新Azure广告中用户的accountEnabled属性

我们使用的代码如下所示:

await graphClient.Users[userId]
                .Request()
                .UpdateAsync(
                    new User()
                    {
                        AccountEnabled = false
                    });
我们从Microsoft Graph收到以下错误:

"error": {
    "code": "Authorization_RequestDenied",
    "message": "Insufficient privileges to complete the operation."
}
在docs()中,我可以在任务“更新用户设置”下找到它需要全局管理员的角色。在Azure AD门户中,“阻止登录”(相当于accountEnabled)位于“设置”下

这对我来说似乎有点不合适,但我将我的应用程序服务负责人添加到了这个角色中,这当然奏效了。(如果我只是将服务主体分配给全局管理员,它为什么不起作用。它现在应该可以在我的Azure广告中执行任何操作)

有人能确认这是在Azure AD中更新用户的accountEnabled属性所需的最低权限吗

谢谢


Jeff

通过Microsoft Graph更新用户的文档如下所示。当您获得访问令牌并同意应用程序访问该作用域/权限时,需要请求一个作用域,如User.ReadWrite

如果您在桌面或控制台应用程序中执行此操作,您可以这样做:

IPublicClientApplication publicClientApplication = PublicClientApplicationBuilder
            .Create(clientId)
            .Build();
var scopes = new string[] {"User.ReadWrite"};    
InteractiveAuthenticationProvider authProvider = new InteractiveAuthenticationProvider(publicClientApplication, scopes);
GraphServiceClient graphClient = new GraphServiceClient( authProvider );

我非常欣赏Darrel的示例,但是,我正在使用机密的ClientApplicationBuilder接收带有机密的令牌。我可以更新用户的其他属性,例如部门,但每当我尝试更新AccountEnabled时,我的权限不足。我已同意Azure AD门户中的应用程序,其scopes User.ReadWriteAll应足以更新用户。您知道通过graph api设置AccountEnabled是否需要特定权限吗?Thanks@J.Huntsman我不知道需要单独的权限。我刚刚尝试使用我们的PowerShell库更新演示租户上启用的accountEnabled,效果良好。我是一名管理员,但使用委托访问权限。