使用 Active Directory 图形客户端删除 AAD B2C 中的用户

Posted

技术标签:

【中文标题】使用 Active Directory 图形客户端删除 AAD B2C 中的用户【英文标题】:Delete user in AAD B2C using Active directory graph client 【发布时间】:2018-05-30 10:05:47 【问题描述】:

我已使用以下代码从 Azure 活动目录 B2C 中删除用户。

Uri servicePointUri = new Uri("https://graph.windows.net");

Uri serviceRoot = new Uri(servicePointUri, "xxxx.onmicrosoft.com");

var activeDirectoryClient = new ActiveDirectoryClient(serviceRoot, async () => await GetAccessToken());

var myUser = new Microsoft.Azure.ActiveDirectory.GraphClient.User()
                
                    ObjectId = "63ca9c1d-2bd0-4a6b-8bf6-b850b16ed50b"
                ;

await myUser.DeleteAsync();

但我得到了异常消息“未初始化”。

谁能告诉我这是什么问题?

【问题讨论】:

【参考方案1】:

您可能必须先检索要删除的用户。例如:

var user = await Client.Users.Where(u => u.ObjectId.Equals("63ca9c1d-2bd0-4a6b-8bf6-b850b16ed50b"))).ExecuteSingleAsync();
await user.DeleteAsync();

【讨论】:

代码有效,但出现与权限不足相关的异常。 但是 GetAccessToken() 方法被调用了两次,1. 在创建 activeDirectoryClient 2. 在执行代码 DeleteAsync 时。是否可以重复使用正常行为和相同的令牌? 您可能缺乏权限。见:developer.microsoft.com/en-us/graph/docs/api-reference/v1.0/api/… 您发布的链接指向 Microsoft Graph api (graph.microsoft.com) 但我使用的是 AAD graph api "graph.windows.net" 如果使用await则不需要.Result

以上是关于使用 Active Directory 图形客户端删除 AAD B2C 中的用户的主要内容,如果未能解决你的问题,请参考以下文章

使用证书的 Azure Active Directory 守护程序客户端

使用 Azure AD Graph 客户端获取 Active Directory 管理员

SCCM TP4部署前的Active Directory准备

Azure Active Directory 中的 URL 重定向

SharePoint 使用客户端证书为没有 Active Directory 帐户的用户声明身份验证

活动目录(Active Directory)的主要功能