2015-07-23 9 views
9

Korzystając z klienta wykresu usługi Azure Active Directory, mogę pomyślnie wysłać zapytanie do AD o jego role użytkownika za pomocą ff. Kod:Uzyskiwanie administratorów usługi Active Directory przy użyciu klienta wykresów AD Azure

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

Czy to jednak możliwe, aby uzyskać:

  1. listę ról, które Administrator role i
  2. lista użytkowników, którzy wchodzą w admin? role?

W tym przypadku moja definicja administrator byłby użytkowników pod Spółki Administrator roli, lub tych, którzy będą w stanie zezwolić aplikacji (poprzez żądanie auth URL w formacie https://login.microsoftonline.com/common/oauth2/authorize?response_type=code&client_id=xxx-xxx&resource=yyy-yyy&redirect_uri=zzz-zzz&prompt = admin_consent)

Odpowiedz

2

Istnieje kilka sposobów na zrobienie tego i spójrzmy na interfejs API REST jako punkt wyjścia.

Można uzyskać listę grup i ról za USER wykorzystaniem dokonywania żądanie GET do: https://graph.windows.net/myorganization/users/{user_id}/$links/memberOf?api-version

W przypadku powodzenia zwraca zbiór linków do grupy i DirectoryRole, że ta osoba jest członkiem

ref: Get a user's group and directory role memberships

Aby uzyskać członkostwo w grupie byś uczynić żądanie GET do: https://graph.windows.net/myorganization/groups/{object_id}/$links/members?api-version

ref: Get a group's direct members

Jednak za docs:

Brak funkcji lub działania można nazwać ról katalogów

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

ma to być zrobione od użytkownika obiekt. SDK to odzwierciedli.

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

Aplikacja konsoli GraphAPI ma kilka świetnych przykładów, które powinny pokazać, jak należy wykonać następujące czynności: Program.cs

+0

Dzięki za @Devian wejściowego. Stworzyłem metodę testowania i mogłem zweryfikować, czy administrator mojej firmy miał obiekt 'Role', który po połączeniu z rolami aktywnego katalogu był zgodny z rolą" Administratorzy firmy "AD. Czy to powiedziawszy, czy jest to gwarancja, że ​​każde AD będzie miało tę rolę, z nazwą "Administrator firmy"? Zakładam, że ID roli zmieni się z każdym najemcą, ale jeśli nazwa jest stała, nie mam nic przeciwko używaniu go do porównania. Najprawdopodobniej będę musiał przejrzeć wszystkich członków, aby sprawdzić, czy pasują do roli, aby uzyskać wszystkich administratorów AD. – miguelarcilla

Powiązane problemy