从 Java [graphClient.users(user-id).buildRequest().delete()] 中活跃的 Azure B2C 中删除用户
Deleting USERS from Azure B2C Active in Java [graphClient.users(user-id).buildRequest().delete()]
我正在尝试将用户迁移到 Azure B2C Active Directory。
早些时候我创建了从 JSON 文件中读取的“用户”并创建了它们,但是如果 JSON 中的任何“用户”已经存在于 Azure B2C AD 中,我出现异常...
SEVERE: Throwable detail: com.microsoft.graph.http.GraphServiceException: Error code: Request_BadRequest
Error message: Another object with the same value for property userPrincipalName already exists.
我用一个简单的 try/catch 处理所有这些“用户”并跳过它们并将它们移动到 JSON 中的下一个用户。
现在我需要删除进程中的现有用户(一旦出现上述异常,我将删除用户)
我试过了...
private void deleteExistingUser(String issuerAssignedId, IGraphServiceClient graphClient) {
graphClient.users(issuerAssignedId).buildRequest().delete();
LOG.info("User deleted.");
}
但是当上面的代码被击中时,我得到了下面的异常...
Error message: Resource 'shumi' does not exist or one of its queried reference-property objects are not present.
你能告诉我怎么才能进入这里吗graphClient.users(what_value_will_go_here).buildRequest().delete();
我相信这是因为我正在使用 userPrincipalName (issuerAssignedId) 来删除用户,相反我应该使用 "azure retured user id"(它被称为 Object-id OR user-id 我认为) 删除用户。
有什么方法可以让我获得 azure 返回的用户 ID 或其他删除用户的方法吗?
您应该在此处输入用户对象 ID 或 userPrincipalName。
您在这里使用“shumi”是因为它的 signInType 是 userName。
由于您收到错误 Error message: Another object with the same value for property userPrincipalName already exists.
,我认为您已经有了 userPrincipalName。
您不需要获取用户标识。只需像这样删除用户:
await graphClient.Users["{userPrincipalName}"]
.Request()
.DeleteAsync();
使用 IUserCollectionPage 和 QueryOption 获取列表。
LinkedList<QueryOption> requestOptions = new LinkedList<>();
String query = "identities/any(c:c/issuerAssignedId eq ' issuerAssignedId '
and c/issuer eq ' b2cTenant ')";
requestOptions.add(new QueryOption("$filter", query));
IUserCollectionPage userColl = graphClient.users()
.buildRequest(requestOptions)
.get();
List<User> userInfo = userColl.getCurrentPage();
String uId = null;
for (User user : userInfo) {
userId = user.id;
}
graphClient.users(uId).buildRequest().delete();
这是从 Azure b2c AD 中删除用户的方法
注意:b2Tenant 是“demo.micorsoft.com”(使用您的)
我正在尝试将用户迁移到 Azure B2C Active Directory。
早些时候我创建了从 JSON 文件中读取的“用户”并创建了它们,但是如果 JSON 中的任何“用户”已经存在于 Azure B2C AD 中,我出现异常...
SEVERE: Throwable detail: com.microsoft.graph.http.GraphServiceException: Error code: Request_BadRequest
Error message: Another object with the same value for property userPrincipalName already exists.
我用一个简单的 try/catch 处理所有这些“用户”并跳过它们并将它们移动到 JSON 中的下一个用户。
现在我需要删除进程中的现有用户(一旦出现上述异常,我将删除用户)
我试过了...
private void deleteExistingUser(String issuerAssignedId, IGraphServiceClient graphClient) {
graphClient.users(issuerAssignedId).buildRequest().delete();
LOG.info("User deleted.");
}
但是当上面的代码被击中时,我得到了下面的异常...
Error message: Resource 'shumi' does not exist or one of its queried reference-property objects are not present.
你能告诉我怎么才能进入这里吗graphClient.users(what_value_will_go_here).buildRequest().delete();
我相信这是因为我正在使用 userPrincipalName (issuerAssignedId) 来删除用户,相反我应该使用 "azure retured user id"(它被称为 Object-id OR user-id 我认为) 删除用户。
有什么方法可以让我获得 azure 返回的用户 ID 或其他删除用户的方法吗?
您应该在此处输入用户对象 ID 或 userPrincipalName。
您在这里使用“shumi”是因为它的 signInType 是 userName。
由于您收到错误 Error message: Another object with the same value for property userPrincipalName already exists.
,我认为您已经有了 userPrincipalName。
您不需要获取用户标识。只需像这样删除用户:
await graphClient.Users["{userPrincipalName}"]
.Request()
.DeleteAsync();
使用 IUserCollectionPage 和 QueryOption 获取列表。
LinkedList<QueryOption> requestOptions = new LinkedList<>();
String query = "identities/any(c:c/issuerAssignedId eq ' issuerAssignedId '
and c/issuer eq ' b2cTenant ')";
requestOptions.add(new QueryOption("$filter", query));
IUserCollectionPage userColl = graphClient.users()
.buildRequest(requestOptions)
.get();
List<User> userInfo = userColl.getCurrentPage();
String uId = null;
for (User user : userInfo) {
userId = user.id;
}
graphClient.users(uId).buildRequest().delete();
这是从 Azure b2c AD 中删除用户的方法
注意:b2Tenant 是“demo.micorsoft.com”(使用您的)