2017-02-03 31 views
1

我有點困惑關於在https://graph.microsoft.io/en-us/docs/authorization/permission_scopes在Microsoft Graph API文檔中,權限'Mail.Read'是否確實代表'Mail.Read.All'?

Mail.Read列出了兩次發現的文件,但似乎意味着不同的事情兩次。第一個例子是「[a]使應用程序讀取用戶郵箱中的電子郵件」,而第二個「[a]使應用程序在沒有登錄用戶的情況下讀取所有郵箱中的郵件」。第二個聽起來像它應該是「全部」限定符,不應該與第一個混淆,因爲他們做不同的事情。

當權限範圍是先決條件時(https://graph.microsoft.io/en-us/docs/api-reference/v1.0/api/user_list_messages),這尤其重要。我們可以期待什麼樣的行爲?

那麼我的主要問題是,我是否認爲沒有辦法讓委派權限允許所有郵件被登錄用戶讀取?相反,我們必須使用僅限應用程序的權限?該文檔給了我一個希望,即可以在沒有應用程序專用權限的情況下進行嘗試,但試用和錯誤都有其他建議。

回答

1

對應用程序和委託權限都有單獨的Mail.Read權限。

首先來看看題爲「應用程序,只對委託權限」

權限範圍可以是應用程序,或僅委派部分。僅應用程序範圍 (也稱爲應用程序角色)嚮應用程序授予範圍提供的全套特權 。僅應用程序範圍通常由 作爲服務運行而不存在登錄用戶的應用程序使用。

委派的權限範圍適用於代表用戶行事的應用程序。 這些範圍委託登錄用戶的權限,允許應用程序作爲用戶。授予應用程序 的實際權限將是由範圍授予的 權限與登錄的 用戶擁有的權限中權限最低的組合(交集)。例如,如果允許的範圍內授權委託的特權 寫所有目錄對象,但登錄的用戶有權 只更新自己的用戶配置文件,應用程序將只能 寫登錄的用戶的個人資料,但沒有其他物體。

「權限不需要管理員的同意」委派的權限,而「應用程序,只需要權限管理員的同意」是唯一的應用程序的權限,這就是爲什麼它顯示了兩次。

意識到接下來的事情是,當你得到一個代表令牌,你的應用程序具有的權限將用戶有權限的交集,並同意授予的權限。因此,在用戶的令牌簽名的,你只能夠讀取該用戶具有訪問郵件,其程度是由Mail.Read.Shared

Mail.Read.Shared 
Read user and shared mail 
Allows the app to read mail that the user can access, including the user's own and shared mail. 

捕捉如果您要訪問的郵件用戶的所有在您的租戶中,您必須擁有具有該級別訪問權限的用戶帳戶,或者您需要使用授予該訪問權限範圍的App Only令牌。

Mail.Read 
Read mail in all mailboxes 
Allows the app to read mail in all mailboxes without a signed-in user. 

讓我知道這是否有幫助!

+0

我不確定最後一點。您建議管理員只能使用委託權限訪問租戶中的所有電子郵件?我認爲文件會同意,但我沒有運氣。這是我的問題與文件的性質。我只是做錯了什麼或者是文檔,事實上,在這一點上有點誤導,並且除了僅限於應用程序權限之外,這是不可能的。 – piisexactly3

+0

我認爲這裏的「admin」是一個超載的術語。租戶管理員不同於Exchange /郵箱管理員。您可以通過您嘗試使用的用戶帳戶類型,您嘗試訪問的郵箱以及您所獲得的具體錯誤來了解更多詳細信息嗎? –

+0

我正在使用公司管理員帳戶,在我的[理解](https://support.office.com/zh-cn/article/About-Office-365-admin-roles-da585eea-f576-4f55-a1e0 -87090b6aaa9d?ui = en-US&rs = en-US&ad = US)與全局管理員相同。當我嘗試訪問任何郵箱時,出現403錯誤。我不會診斷我的問題,這可能是無關緊要的問題,我會確信它確實是可能的,而且我只是在做錯事。任何幫助真的很感激,我只是不知道該走哪個方向。 – piisexactly3

相關問題