2017-08-28 121 views
1

我正在使用Microsoft Graph來管理Azure AD用戶,並且在訪問用戶對象上的擴展屬性時遇到一些問題。該屬性是在使用Azure AD Graph API創建用戶時添加的,如果您使用Azure AD API查詢用戶,則會自動使用名稱「extension_ {appId} _ {propertyName}」返回擴展屬性。我想使用Microsoft Graph訪問此屬性的值,但尚未找到正確的調用。使用Microsoft Graph在用戶上獲取擴展屬性

我試過用$ select直接選擇屬性(按上面列出的全名)和較短的名稱。
https://graph.microsoft.com/beta/Users/{id}?$select=extension_{appId}_{propertyName}

我也嘗試過使用$擴展查詢singleValueExtendedProperty(和多值),但我告訴屬性的用戶對象上不存在。
https://graph.microsoft.com/beta/Users/{id}?$expand=singleValueExtendedProperty

我也玩過User對象上的'extensions'字段,但是它總是空。

只是好奇,如果Graph支持此操作,如果是這樣,如何查詢該字段。如果在查詢用戶組時不需要運行單獨的查詢,就可以獲得此擴展的價值,這將是一項獎勵。

回答

2

擴展在微軟圖表顯示了Extensions集合內,不都是頂級屬性:

"@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" 
    } 
] 

例如,你可以使用下面的查詢返回的users集合(包括任何擴展): v1.0/users?$select=id,displayName,mail&$expand=extensions(請參閱Graph Explorer

+0

感謝您的回答...我試過查詢extensions屬性(並擴展它),但是返回的所有內容都是空列表。我的User對象上的擴展名不是用Graph創建的,而是用openExtensions創建的。它們是使用Azure AD Graph API作爲擴展屬性創建的。我不確定這兩件事是否相同。 –

+0

有「開放式」和「架構」擴展。這聽起來像是一個模式擴展?您可以使用'https:// graph.microsoft.com/v1.0/schemaExtensions'查找擴展列表。然後,您可以使用'$ select = id,name,{schemaExtension-id}'中的'id'屬性將其包含在結果中。 –

+0

我在模式擴展中看不到我的擴展。這可能是因爲它們是用AAD API創建的,它們不會顯示出來嗎?我在這裏發現了一個非常類似的未答覆的問題:https://stackoverflow.com/questions/40218848/access-azue-active-directory-extension-from-microsoft-graph。使用這個我可以得到我的擴展。 –

相關問題