Клиент Graph Net не поддерживает ваши требования напрямую.
Но, основываясь на моем тесте, мы можем попробовать следующее:
Используйте следующий код, чтобы получить список с DirectoryRole, а затем выполнить фильтрацию по DisplayName, а затем проверить идентификатор шаблона роли (Для directoryRole из Me.MemberOf , если DisplayName содержит Администратор , по сути, мы роль администратора. Если использовать API DirectoryRoles , мы можем выполнить итерацию списка и проверить идентификатор шаблона роли ):
// This will contains the group too, we need to filter it to get the directoryrole
IUserMemberOfCollectionWithReferencesRequest builder = graphClient.Me.MemberOf.Request();
IUserMemberOfCollectionWithReferencesPage page = await builder.GetAsync();
// This is all directoryrole in our tenant, we need to filter by DisplayName contains **Administrator**
IGraphServiceDirectoryRolesCollectionRequest request = graphClient.DirectoryRoles.Request();
IGraphServiceDirectoryRolesCollectionPage directoryRoles = await request.GetAsync();
Результаты Me.MemberOf :
Результаты DirectoryRoles :
Если обходной путь все еще не может удовлетворить ваши требования, я предлагаю вам отправить запрос на добавление функций по uservoice и github Issues
Дополнительный ответ:
(К сожалению, фильтрация в Microsoft Graph для ресурсов каталогов, как правило, довольно ограничена. Поэтому вы можете просто использовать клиентскую фильтрацию в памяти или отправить запрос функции сейчас):
Теоретически мы можем использовать остальные API, как это ( Указанный фильтр для запроса свойства ссылки в настоящее время не поддерживается. )
https://graph.microsoft.com/v1.0/me/memberOf/$/microsoft.graph.group?$filter=groupTypes/any(a:roleTemplateId eq '62e90394-69f5-4237-9190-012177145e10')
И в коде C #, основанном на Graph Client
List<QueryOption> options = new List<QueryOption>
{
new QueryOption("$filter",
"groupTypes/any(a:roleTemplateId eq '62e90394-69f5-4237-9190-012177145e10'")
};
IUserMemberOfCollectionWithReferencesRequest builder = graphClient.Me.MemberOf.Request(options);
IGraphServiceDirectoryRolesCollectionRequest request = graphClient.DirectoryRoles.Request(options);