2015-07-23 7 views
9

Utilizzando il client grafico di Azure Active Directory, posso interrogare correttamente l'annuncio per i ruoli utente con ff. Codice:Ottieni amministratori di Active Directory utilizzando Azure AD Graph Client

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

E 'possibile, tuttavia, per ottenere:

  1. un elenco di ruoli che sono i ruoli di amministratore, e
  2. un elenco di utenti che rientra l'amministratore? ruoli?

In questo caso, la mia definizione di un admin sarebbe utenti sotto l'Amministratore società ruolo, o di quelli che sarebbe in grado di autorizzare un'applicazione (tramite l'URL della richiesta di autenticazione con il formato https://login.microsoftonline.com/common/oauth2/authorize?response_type=code&client_id=xxx-xxx&resource=yyy-yyy&redirect_uri=zzz-zzz&prompt = admin_consent)

risposta

2

Ci sono un paio di modi in cui puoi farlo e diamo un'occhiata all'API REST come punto di partenza.

È possibile ottenere un elenco di gruppi e ruoli per UTENTE utilizzando fare una richiesta GET a: https://graph.windows.net/myorganization/users/{user_id}/$links/memberOf?api-version

In caso di successo, restituisce un insieme di legami con il gruppo e di DirectoryRole di che questo utente è un membro del

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

per ottenere l'appartenenza di un gruppo che si dovrebbe fare una richiesta GET a: https://graph.windows.net/myorganization/groups/{object_id}/$links/members?api-version

ref: Get a group's direct members

Tuttavia per la documentazione:

Non funzioni o azioni possono essere chiamati a ruoli di directory

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

Questo deve essere fatto dalla UTENTE oggetto. L'SDK rifletterà questo.

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

La console app GraphAPI ha alcuni grandi esempi che dovrebbe mostrare come completare queste azioni: Program.cs

+0

Grazie per la @Devian di ingresso. Ho creato un metodo di test ed è stato in grado di verificare che l'amministratore della mia azienda avesse un oggetto 'Ruolo' che, quando ha fatto il riferimento incrociato con i ruoli della directory attiva, corrispondeva al ruolo" Amministratori della società "dell'AD. Detto questo, è una garanzia che ogni AD avrà questo ruolo, con il nome "Amministratore della società"? Presumo che l'ID del ruolo cambierà con ogni inquilino, ma se il nome è una costante, non mi dispiace usarlo per il confronto. È probabile che dovrò passare in rassegna tutti i membri per verificare se corrispondono al ruolo per ottenere tutti gli amministratori di AD. – miguelarcilla