2017-08-28 4 views
1

Je travaille avec Microsoft Graph pour gérer les utilisateurs Azure AD et j'ai des difficultés à accéder aux propriétés d'extension sur un objet Utilisateur. La propriété a été ajoutée lorsque l'utilisateur a été créé à l'aide de l'API Azure AD Graph et si vous interrogez l'utilisateur à l'aide de l'API Azure AD, la propriété extension est automatiquement renvoyée avec le nom "extension_ {appId} _ {propertyName}". Je souhaite accéder à la valeur de cette propriété à l'aide de Microsoft Graph, mais je n'ai pas trouvé l'appel correct pour le faire.Obtention de propriétés étendues sur un utilisateur à l'aide de Microsoft Graph

J'ai essayé d'utiliser $ select pour sélectionner la propriété directement (par le nom complet indiqué ci-dessus) et le nom le plus court.
https://graph.microsoft.com/beta/Users/{id}?$select=extension_{appId}_{propertyName}

J'ai aussi essayé interroger le singleValueExtendedProperty (et MultiValue) avec $ l'expansion, mais on me dit la propriété n'existe pas sur un objet utilisateur. J'ai aussi joué avec le champ 'extensions' sur l'objet User mais c'est toujours juste null. Juste curieux si Graph supporte cette opération et si oui, comment interroger ce champ. Ce serait un bonus si je pouvais obtenir la valeur de cette extension lors de l'interrogation de groupes d'utilisateurs sans avoir à lancer une requête séparée.

Répondre

2

extensions apparaissent dans Microsoft Graph dans la collection Extensions, ne sont des propriétés de haut niveau:

"@odata.context": "https://graph.microsoft.com/v1.0/$metadata#users(id,displayName,mail,extensions)/$entity", 
"id": "16f5a7b6-5a15-4568-aa5a-31bb117e9967", 
"displayName": "Anne Weiler", 
"mail": "[email protected]", 
"[email protected]": "https://graph.microsoft.com/v1.0/$metadata#users('16f5a7b6-5a15-4568-aa5a-31bb117e9967')/extensions", 
"extensions": [ 
    { 
     "@odata.type": "#microsoft.graph.openTypeExtension", 
     "theme": "dark", 
     "color": "purple", 
     "lang": "Japanese", 
     "extensionName": "com.contoso.roamingSettings", 
     "id": "com.contoso.roamingSettings" 
    } 
] 

Par exemple, vous pouvez utiliser la requête suivante pour retourner une collection de users (y compris les extensions): v1.0/users?$select=id,displayName,mail&$expand=extensions (voir dans Graph Explorer)

+0

Merci pour la réponse ... J'ai essayé d'interroger la propriété extensions (et l'expansion) mais tout ce qui est retourné est une liste vide. Les extensions sur mes objets Utilisateur n'ont pas été créées avec Graph comme openExtensions. Ils ont été créés en tant que propriétés étendues avec l'API Azure AD Graph. Je ne suis pas sûr si ces deux choses sont équivalentes. –

+0

Il existe des extensions "open" et "schema". Cela ressemble à une extension de schéma? Vous pouvez consulter la liste des extensions en utilisant 'https: // graph.microsoft.com/v1.0/schemaExtensions'. Vous pouvez ensuite utiliser la propriété 'id' dans' $ select = id, name, {schemaExtension-id} 'pour l'inclure dans les résultats. –

+0

Je ne vois pas non plus mon extension dans les extensions de schéma. Est-il possible que, parce qu'ils ont été créés avec l'API AAD, ils n'apparaissent pas? J'ai trouvé une question sans réponse très similaire ici: https://stackoverflow.com/questions/40218848/access-azue-active-directory-extension-from-microsoft-graph. En utilisant cela, je pourrais obtenir mes extensions. –