2016-11-30 130 views
0

MicrosoftGraph Outlook Mail的列表消息API允許我列出管理用戶的消息(授權應用程序生成令牌),但它不允許獲取其他消息用戶。我嘗試了以下API調用MicrosoftGraph的列表消息API返回訪問被拒絕消息

https://graph.microsoft.com/v1.0/users/[email protected]/messages 

它會返回以下錯誤消息。

Status Code: 403 
{ 
    "error": { 
     "code": "ErrorAccessDenied", 
     "message": "Access is denied. Check credentials and try again.", 
     "innerError": { 
      "request-id": "2c567919-e538-456a-9a90-74fa43685bd1", 
      "date": "2016-11-30T10:37:58" 
     } 
    } 
} 

請幫我解決問題。

注:我使用的認證碼流,這是一個多租戶應用。是否可以爲多租戶應用程序實現令牌流?

回答

0

從您的問題中,您不清楚您正在使用哪個身份驗證流程,但我懷疑您正在使用身份驗證代碼流程。

如果您使用的是身份驗證碼流和用戶委託權限,則無論用戶是普通用戶還是管理員,您都只能訪問當前用戶的郵件。

示例使用授權碼流:

var ctx = new AuthenticationContext(authority + tenant); 
var t = await ctx.AcquireTokenAsync(resource, clientId, new Uri(redirectUri), new PlatformParameters(PromptBehavior.Auto)); 

只有通過客戶端憑證流和應用程序的權限,你可以檢索任何用戶的郵件。

。樣品使用客戶機憑證流:

var ctx = new AuthenticationContext(authority + tenant, new TokenCache()); 
var t = ctx.AcquireToken(resource, new ClientCredential(clientId, clientSecret)); 
+0

感謝您的響應。我正在使用代碼流進行身份驗證,我正在開發多租戶應用程序。是否可以爲多租戶應用程序使用**客戶端憑證流程**?由於以下[頁面](https://graph.microsoft.io/en-us/docs/authorization/app_only)表示_single-tenant或守護程序app_。 –

相關問題