我和我的团队构建了使用Microsoft Graph API从用户的Office 365环境恢复数据的Web App。该应用程序使用Azure AD为用户提供访问令牌。
我们现在正尝试使用EWS Api添加可以访问相同用户的Exchange Online信息的组件。但是,似乎尝试使用与Graph API提供的访问令牌相同的访问令牌始终返回401(未授权)响应,即使我必须在我的Azure AD应用程序上设置适当的权限。以下是我们用来尝试访问某些用户信息的代码:
ExchangeService service = new ExchangeService(ExchangeVersion.Exchange2013);
service.HttpHeaders.Add("Authorization", "Bearer " + accessToken);
service.PreAuthenticate = true;
service.SendClientLatencies = true;
service.EnableScpLookup = false;
service.Url = new Uri("https://outlook.office365.com/EWS/Exchange.asmx");
TasksFolder tasksfolder = TasksFolder.Bind(service, WellKnownFolderName.Tasks,
new PropertySet(BasePropertySet.IdOnly, FolderSchema.TotalCount));
Bind方法将始终返回401错误,提示我认为来自一个API的其他访问令牌对另一个API无效。
如果是这种情况,是否可以获得对多个API调用有效的单一访问令牌?
答案 0 :(得分:0)
它应该可以正常工作,但EWS不支持受限制的权限模型,如REST,所以" EWS应用程序需要"完全访问用户的邮箱"允许。根据{{3}}
中的说明