Получение администраторов Active Directory с помощью клиента Azure AD Graph

используя клиент Azure Active Directory Graph, я могу успешно запросить AD для его ролей пользователей с помощью ff. код:

var activeDirectoryClient = new ActiveDirectoryClient(); // Instantiate the Graph Client here.
var adRoles = await activeDirectoryClient.DirectoryRoles.ExecuteAsync();

возможно ли, однако, получить:

  1. список ролей, ролей администратора? и
  2. список пользователей, которые попадают под роли администратора?

в этом случае моим определением администратора будут пользователи под Администратору роль, или те, кто сможет авторизовать приложение (через URL-адрес запроса auth с форматом https://login.microsoftonline.com/common/oauth2/authorize?response_type=code&client_id=xxx-xxx&resource=yyy-yyy&redirect_uri=zzz-zzz&prompt=admin_consent)

1 ответов


есть несколько способов сделать это, и давайте рассмотрим REST API в качестве отправной точки.

вы можете получить список групп и ролей в пользователей использование запроса GET для: https://graph.windows.net/myorganization/users/{user_id}/$links/memberOf?api-version

при успешном выполнении возвращает коллекцию ссылок на группы и DirectoryRole, что этот пользователь является членом

ref:получить группу пользователя и ролям каталог

чтобы получить членство в группе, вы должны сделать запрос GET: https://graph.windows.net/myorganization/groups/{object_id}/$links/members?api-version

ref:получить прямых членов группы

однако в документы:

никакие функции или действия не могут быть вызваны для ролей каталога

ref: https://msdn.microsoft.com/en-us/Library/Azure/Ad/Graph/api/entity-and-complex-type-reference#DirectoryRoleEntity

Это должно быть сделано из объекта USER. SDK будет отражать это.

IPagedCollection<IDirectoryObject> pagedCollection = retrievedUserFetcher.MemberOf.ExecuteAsync();

консольное приложение GraphAPI имеет несколько замечательных примеров, которые должны показать вам, как выполнить эти действия: