java - 将 DirectoryObject 转换为用户

标签 java azure-active-directory microsoft-graph-api microsoft-graph-sdks

给定对特定目录角色成员的查询,我想返回相应用户的列表。我所拥有的是:

IDirectoryObjectCollectionWithReferencesRequest request = graphServiceClient.directoryRoles(roleId).members().buildRequest();
IDirectoryObjectCollectionWithReferencesPage page = request.select(USER_FIELDS_TO_RETURN).get();
List<DirectoryObject> objects = page.getCurrentPage();
IDirectoryObjectCollectionWithReferencesRequestBuilder builder = page.getNextPage();
while (builder != null) {
    request = builder.buildRequest();
    page = request.select(USER_FIELDS_TO_RETURN).get();
    objects.addAll(page.getCurrentPage());
    builder = page.getNextPage();
}
return objects.stream().filter(o -> o.oDataType.equals("#microsoft.graph.user")).map(o -> new User()).collect(Collectors.toList());

问题出在返回语句上。仅过滤用户对象(找不到比比较 oDataType 更优雅的方法)并返回包含 o 内容的用户对象:

objects.stream().filter(o -> o.oDataType.equals("#microsoft.graph.user")).map(o -> {
        // the only thing that I could think of is to do some weird
        // serialization/deserialization logic here which is a bad solution
        // for anything other than a small number of elements
}).collect(Collectors.toList());

将 DirectoryObject 转换为 User 的正确方法是什么

最佳答案

Microsoft Graph 当前不支持此要求。

如果您正在检查一个特定的目录角色,您可以从另一个方向来。/members 端点支持按成员 ID 过滤:

v1.0/directoryRoles/{role-id}/members?$filter=id eq '{user-id}'

请检查此线程中提供的答案和解决方法。 How to get admin roles that I am a member of, from Microsoft Graph using .Net Client SDK?

关于java - 将 DirectoryObject 转换为用户,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54084563/

相关文章:

java - Byte Buddy - 处理生成的类中的循环引用

azure - 用户信息 - 获取更多

azure - 如何调试从不触发的 Microsoft Graph API 订阅?

java - 确定 TextView 是否需要滚动

java - Google oauth2 Java 联系人服务 - 文档中的冲突

java - 使用 CoreNLP 单独标记和后标记

c# - 另外获取刷新 token 以使用 Microsoft.Identity.Client 访问 token

azure-active-directory - 设置 hideFromAddressLists 或 hideFromOutlookClients 时出现 ErrorGroupsAccessDenied

php - Microsoft Graph API(日历)间歇性 503 错误

java - Microsoft Graph api 无效范围