2016-02-04 109 views
3

嘗試獲取用戶所屬的所有Office 365組。
我已經在Azure上註冊了一個'Native客戶端應用程序',並且只選擇了一個權限:在'Microsoft Graph'範圍下'讀取所有組'。無法獲取Office 365組我是圖形API的成員

問題:來自其他租戶的用戶得到了「由於缺少權限而無法同意調用主體」。錯誤,並沒有進入同意步驟。

如果用戶擁有管理權限,或者如果我在另一個租戶上註冊了另一個應用程序,我可以通過同意步驟並獲得組列表。

順便說一句,註冊'Web應用程序'並在多租戶選項中選擇'是'也沒有幫助。

有誰知道'Group.Read.All'是否需要管理員同意?根據this它沒有。
我也試着運行這個查詢https://graph.microsoft.com/v1.0/me/memberOf/$/microsoft.graph.group?$filter=groupTypes/any(a:a%20eq%20'unified')提到here下'GET統一組我是成員',但沒有運氣。

另一個問題,有沒有辦法將本地應用程序配置爲多租戶應用程序?

回答

0

答案來自您所說的:未達到同意步驟,而您剛剛選擇閱讀所有組是不夠的。您必須選擇登錄用戶權限以及圖api。

希望這會有所幫助。

+0

我嘗試添加了「登錄和讀取用戶配置文件」的權限,但得到了同樣的結果... –

0

你在這裏有幾個問題,所以我會盡力幫忙。如果我錯過了某些內容或需要更多解釋,請告訴我。

Azure AD中的本地應用程序本質上屬於多租戶,因此不需要像使用Web應用程序一樣設置多租戶切換。

Group.ReadAll需要管理員同意。我發現以下頁面非常有用,因爲我試圖確定我的應用程序所需的權限:http://graph.microsoft.io/en-us/docs/authorization/permission_scopes

在開發過程中,我有時需要更新我的應用程序的權限。無論何時更新權限,我發現去http://myapps.microsoft.com撤銷我的應用程序的許可是有用的。然後,在下次登錄應用程序時,我總是會收到內容提示,以便我可以清楚地看到用戶將看到的內容。

+0

比你的信息回答道格,但我沒能找到有關本機應用程序管理員同意流的任何信息。 –

+0

管理員同意不同於用戶同意。在這種情況下會發生什麼情況是,您的應用程序必須發送'prompt = admin_consent',並將重定向/ HTTP發送到'/ common/oauth2/authorize'。這裏有一篇關於管理員同意的詳細博客文章。 http://blog.mastykarz.nl/implementing-admin-consent-multitenant-office-365-applications-implicit-oauth-flow/ 本質上會發生什麼,一旦管理員同意,標準用戶將不會提示同意。 –

+0

事實上,當我使用'prompt = admin_consent'進行重定向時,我能夠以管理員的身份同意並且沒有像常規用戶那樣獲得提示。 我使用在Azure中註冊的Web應用程序完成了所有操作 - 您是否知道通過本機應用程序實現此目的的方法? –