MicrosoftGraph的列表消息API返回访问被拒绝消息

时间:2016-11-30 10:44:58

标签: email office365 microsoft-graph

MicrosoftGraph Outlook Mail的列表消息API允许我列出管理员用户的消息(授权应用程序生成令牌),但它不允许获取其他用户的消息。我尝试过以下API调用

https://graph.microsoft.com/v1.0/users/user@microsoft-demo.info/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"
        }
    }
}

请帮我解决问题。

注意:我使用代码流进行身份验证,它是多租户应用。是否可以为多租户应用程序实现令牌流?

1 个答案:

答案 0 :(得分: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));