2017-07-14 4 views
1

Dans Outlook, je peux rechercher tous les utilisateurs de mon organisation, y compris le numéro de téléphone, l'adresse, etc. Avec EWS, je peux faire la même chose ... Avec le graphe Azure AD (https://graph.windows.net) je peux obtenir toutes les propriétés (!) Sur tous les utilisateurs (GAL) ainsi - sans la possibilité de sélectionner un plus petit sous-ensemble de la propriété ...Pourquoi Microsoft Graph est-il plus restrictif?

Dans Microsoft Graph (https://graph.microsoft.com) je peux obtenir tous les utilisateurs (GAL), mais pas toutes les propriétés comme le numéro de téléphone, le titre etc. sans administrateur permet l'accès ... Pourquoi est-ce différent (plus restreint) que les autres API?

ex. la permission; Directory.AccessAsUser.All (Accédez au répertoire que l'utilisateur signé en)

  • Dans utilisateur Microsoft Graph ne parvient pas à consentir
  • Azure AD Graph - ne nécessite pas d'administration

Utilisation de la/moi/personnes (en avant-première) dans Microsoft Graph Je peux obtenir toutes les propriétés sur un grand nombre d'utilisateurs dans mon organisation - mais pas tous. Et je pourrais obtenir certains utilisateurs que mon collègue le plus proche ne peut pas (pourquoi - est-il encore bogué)

Chacun vous dire d'utiliser Microsoft Graph, mais il semble être plus restreint que les anciennes API

Répondre

0

I J'aimerais en savoir un peu plus sur la nature restrictive que vous décrivez. Pour la plupart (en ce qui concerne Directory/Azure AD), Microsoft Graph expose les mêmes données sécurisées par le même modèle d'autorisations que Azure AD Graph. S'il vous plaît voir https://developer.microsoft.com/en-us/graph/docs/concepts/permissions_reference#user-permissions pour plus de détails sur les autorisations d'utilisateur disponibles et ce qu'ils permettent. Ce que vous pouvez voir avec Microsoft Graph est le fait que lorsque vous interrogez l'entité/users définie dans v1.0 (c'est-à-dire GET https://graph.microsoft.com/v1.0/users), Microsoft Graph renverra uniquement un jeu de clés de propriétés utilisateur par défaut. Le type d'entité user est assez grand et augmente tout le temps - il a plus de 40 propriétés et 25 propriétés de navigation. Sérialisation et désérialisation de grands objets, en particulier lorsque les collections de pagination peuvent être coûteuses et non performantes, à la fois pour le client et pour le service Microsoft Graph. Par conséquent, nous retournons un ensemble par défaut. Si vous souhaitez d'autres propriétés, vous devez utiliser le paramètre $select. Par exemple: GET https://graph.microsoft.com/v1.0/users?$select=displayName,givenName, officeLocation,postalCode,state. Ceci est documenté ici: https://developer.microsoft.com/en-us/graph/docs/api-reference/beta/api/user_get par exemple, mais nous travaillons aussi à apporter des améliorations à la documentation dans ce domaine. Si vous voulez voir l'ensemble complet des propriétés exposées par le type d'entité Microsoft Graph user, veuillez regarder le schéma ici: https://graph.microsoft.com/v1.0/ $ metadata. [REMARQUE: $ select n'est pas pris en charge dans l'API Azure AD Graph, donc nous renvoyons toujours l'ensemble complet].

L'API API - ../me/people concerne les personnes avec lesquelles vous (l'utilisateur connecté) communiquez le plus souvent - elle peut également contenir des personnes extérieures à votre organisation. Par conséquent, la liste des personnes est probablement spécifique et différente pour chaque utilisateur (même les collègues). Il ne s'agit pas non plus du répertoire complet des utilisateurs de votre organisation.

Je voudrais également aller au fond de pourquoi vous voyez une différence en termes de consentement - Directory.AccessAsUser.All exige toujours le consentement d'admin pour des applications Web (pour Microsoft et Azure AD Graph).

Hope this helps,

+1

utilisant à la fois Graphique Explorers je peux plus les utilisateurs et les propriétés « non nulles » dans l'Azure AD Graph Explorer et dans Microsoft Graph Explorateur ... Je ne peux pas utiliser Microsoft Graph pour obtenir les numéros de téléphone , le titre du travail, etc. mais ces propriétés sont renseignées dans Azure AD Graph Explorer ... L'ensemble par défaut (contient 11 propriétés) contient en réalité toutes les propriétés dont j'ai besoin pour le moment. Il retourne des informations dans; id, displayName, givenName, mail, nom de famille et userprincipalname - alors que businessPhones, jobTitle, mobilePhone, officeLocation (et preferredLangiage) est vide pour TOUS les utilisateurs. –

+0

De toute façon, nous n'utiliserons pas l'API/people, mais elle nous a donné les propriétés manquantes ... Semble ne renvoyer que 1000 enregistrements maximum - mais est-ce 1000 nomatter (utilisateur pr.) Quel filtre j'utilise ou est-il pr . filter (?) –

+0

J'ai reçu une 'application Azure AD only' (application Web/API) dans le portail Azure. Dans la section "Autorisations requises", j'ai ajouté l'accès pour "Microsoft Graph" et "Windows Azure Active Directory (Microsoft.Azure.ActiveDirectory)". Dans la section 'Delegate permissions' je vois ce qui suit: * Microsoft Graph: 'Accès au répertoire en tant qu'utilisateur connecté' a une icône verte avec un 'Oui' comme 'nécessite un administrateur' * Windows Azure AD: 'Accès le répertoire en tant qu'utilisateur connecté 'a une icône rouge et' Non 'en tant qu'administrateur' –