2017-07-14 33 views
1

在Outlook中,我可以查找組織中的所有用戶,包括電話號碼,地址等。 我想使用EWS我可以做同樣的事情... 使用Azure AD圖形(https://graph.windows.net)我可以獲得所有(!)屬性所有(GAL)用戶以及 - 沒有選擇一個較小的屬性子集...爲什麼Microsoft Graph更具限制性?

在Microsoft Graph(https://graph.microsoft.com)我可以得到所有用戶(GAL),但不是(所有)屬性,如電話號碼,標題等沒有管理員允許訪問...爲什麼這是不同的(更受限制)比其他API?

ex。許可; Directory.AccessAsUser.All(訪問目錄作爲登錄用戶)

  • 在微軟圖形用戶無法同意
  • 在Azure的AD圖 - 並不需要管理員

使用/ me/people(在預覽中)Microsoft Graph中,我可以獲取組織中許多用戶的所有屬性 - 但不是全部。我可能會得到一些用戶,我的同事最近不能(爲什麼? - 它仍然是越野車)

每個人都告訴你使用微軟圖形,但它似乎比舊的API

回答

0

我更受限制有興趣瞭解更多關於你所描述的限制性的內容。在大多數情況下(就Directory/Azure AD而言),Microsoft Graph公開了與Azure AD Graph相同的權限模型保護的相同數據。請參閱https://developer.microsoft.com/en-us/graph/docs/concepts/permissions_reference#user-permissions瞭解更多有關可用用戶權限及其允許內容的詳細信息。

使用Microsoft Graph可能會看到的一個事實是,當您查詢v1.0中設置的/ users實體(即GET https://graph.microsoft.com/v1.0/users)時,默認情況下Microsoft Graph將只返回一組關鍵用戶屬性。 user實體類型非常大,並且一直在增長 - 它有40多個屬性和25個導航屬性。序列化和反序列化大型對象,尤其是分頁集合對於客戶端和Microsoft Graph服務而言既昂貴又非高性能。因此我們返回一個默認集合。如果你想要其他屬性,那麼你需要使用$select參數。例如:GET https://graph.microsoft.com/v1.0/users?$select=displayName,givenName, officeLocation,postalCode,state。這裏記錄如下:https://developer.microsoft.com/en-us/graph/docs/api-reference/beta/api/user_get例如,但我們也正在對該領域的文檔進行一些改進。如果您想查看Microsoft Graph user實體類型公開的完整屬性集,請查看此處的架構:https://graph.microsoft.com/v1.0/ $ metadata。

[注:$ select在Azure AD Graph API中不受支持,因此我們總是返回全集]。

人員API - ../me/people是關於您(登錄用戶)最常與之通信的人員 - 它也可能包含組織以外的人員。因此,對於每個用戶(甚至是同事)來說,人員列表可能是特定的和不同的。它也不是組織中的完整用戶目錄。

我還想深入瞭解爲什麼您會看到同意方面的差異 - Directory.AccessAsUser.All總是需要管理員同意Web應用程序(適用於Microsoft和Azure AD Graph)。

希望這有助於

+1

同時使用圖形探索者,我可以更多的用戶和「非空的屬性在Azure的AD圖Explorer中,微軟圖形瀏覽器...我不能使用Microsoft圖表來獲得電話號碼,職稱等,但這些屬性填寫在Azure AD Graph Explorer中... 默認設置(包含11個屬性)實際上包含我目前需要的所有屬性。它返回信息; id,displayName,givenName,mail,surname和userprincipalname - 而businessPhones,jobTitle,mobilePhone,officeLocation(和preferredLangiage)對於所有用戶都是空的。 –

+0

我們不會使用/ people API,但它確實給了我們缺少的屬性...似乎只返回最多1000條記錄 - 但是那1000(公關用戶)nomatter我正在使用什麼過濾器,還是它是公關。過濾器(?) –

+0

我在Azure門戶中獲得了「Azure AD only applications」(Web應用程序/ API)。在「必需的權限」部分,我添加了「Microsoft Graph」和「Windows Azure Active Directory(Microsoft.Azure.ActiveDirectory)」的訪問權限。在'代理權限'部分,我看到以下內容: * Microsoft Graph:'作爲登錄用戶的訪問目錄'具有綠色圖標,並且'需要管理員'的'是' * Windows Azure AD:'Access作爲登錄用戶的目錄'有一個紅色的圖標和'不'作爲'需要管理員' –

相關問題