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"
}
}
}
请帮我解决问题。
注意:我使用代码流进行身份验证,它是多租户应用。是否可以为多租户应用程序实现令牌流?
答案 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));