Как запросить членство в основной группе службы с помощью библиотеки Microsoft.Graph? - PullRequest
0 голосов
/ 02 октября 2019

Недавно в AAD была добавлена ​​возможность помещать участников службы в группы безопасности ( ref ). Учитывая идентификатор объекта субъекта службы, как запросить членство в его группе безопасности с помощью библиотеки Microsoft.Graph ? Я пробовал следующее:

var groups = client.Users[servicePrincipalId].GetMemberGroups(true).Request().PostAsync().Result;

, но затем получаю ошибку:

Microsoft.Graph.ServiceException: Код: Request_ResourceNotFound Сообщение: Ресурс '$ servicePrincipalId' не существует или одинего запрашиваемых объектов ссылочных свойств нет.

Я попытался использовать вместо этого DirectoryObject:

var groups = client.DirectoryObjects[servicePrincipalId].GetMemberGroups(true).Request().PostAsync().Result;

, но затем получил ошибку:

Microsoft.Graph.ServiceException: CodeMessage: Неподдерживаемый класс объектов каталога 'ServicePrincipal', указанный в идентификаторе ресурса.

Как получить информацию о принципалах службы? Это еще не поддерживается, и я должен использовать REST API или что-то? Я использую пакет Microsoft.Graph NuGet версии 1.17.0.

1 Ответ

3 голосов
/ 02 октября 2019

В настоящее время вам необходимо использовать библиотеку Microsoft.Graph.Beta , в которую добавлена ​​поддержка принципалов обслуживания:

var groups = client.ServicePrincipals[servicePrincipalId].GetMemberGroups(true).Request().PostAsync().Result;

Вы также можете использовать метод CheckMemberGroups(new string[] { groupId }).

...