Лучший подход - вызвать Microsoft Graph API (хотя вы также можете сделать это с помощью Azure AD Graph API).
К перечислить все группы запрос будет выглядеть следующим образом:
GET https://graph.microsoft.com/v1.0/groups
В Java вы можете использовать Microsoft Graph SDK для Java , пример того, как вы можете извлечь все группы (включая подкачку по нескольким страницам).результатов, если у вас более 999 групп):
// Set up the Graph client
IGraphServiceClient graphClient =
GraphServiceClient
.builder()
.authenticationProvider(authProvider)
.logger(new NotALogger())
.buildClient();
// Set up the initial request builder and build request for the first page
IGroupCollectionRequestBuilder groupsRequestBuilder = graphClient.groups();
IGroupCollectionRequest groupsRequest = groupsRequestBuilder
.buildRequest()
.top(999);
do {
try {
// Execute the request
IGroupCollectionPage groupsCollection = groupsRequest.get();
// Process each of the items in the response
for (Group group : groupsCollection.getCurrentPage()) {
System.out.println(group.displayName);
}
// Build the request for the next page, if there is one
groupsRequestBuilder = groupsCollection.getNextPage();
if (groupsRequestBuilder == null) {
groupsRequest = null;
} else {
groupsRequest = groupsRequestBuilder.buildRequest();
}
} catch(ClientException ex) {
// Handle failure
ex.printStackTrace();
groupsRequest = null;
}
} while (groupsRequest != null);
К перечислите все группы, в которых зарегистрированный пользователь является членом (включая вложенные группы):
POST https://graph.microsoft.com/v1.0/me/getMemberGroups
Content-type: application/json
{
"securityEnabledOnly": true
}