Exchange server ResourceNotFound-在混合Exchange设置中使用Microsoft Graph API访问Prem邮箱

Exchange server ResourceNotFound-在混合Exchange设置中使用Microsoft Graph API访问Prem邮箱,exchange-server,microsoft-graph-api,outlook-restapi,Exchange Server,Microsoft Graph Api,Outlook Restapi,据介绍,似乎可以在混合设置中访问prem Exchange邮箱,就像使用Microsoft Graph API访问Exchange online邮箱一样 所以,我们有一个混合设置,其中一些邮箱只在prem上运行。OAuth为它们工作,我可以获得一个访问令牌。当我点击https://graph.microsoft.com/v1.0/me/,我得到了用户的基本配置文件 但当我尝试通过点击以下任一端点来读取邮箱内容时: https://graph.microsoft.com/v1.0/users/(e

据介绍,似乎可以在混合设置中访问prem Exchange邮箱,就像使用Microsoft Graph API访问Exchange online邮箱一样

所以,我们有一个混合设置,其中一些邮箱只在prem上运行。OAuth为它们工作,我可以获得一个访问令牌。当我点击
https://graph.microsoft.com/v1.0/me/
,我得到了用户的基本配置文件

但当我尝试通过点击以下任一端点来读取邮箱内容时:

https://graph.microsoft.com/v1.0/users/(email-address-here)/messages/

https://graph.microsoft.com/v1.0/me/messages/
我得到以下错误响应:

{
    "error": {
        "code": "ResourceNotFound",
        "message": "Resource could not be discovered.",
        "innerError": {
            "request-id": "5d92ef93-e4d5-4610-acd0-a8d2d491d5ab",
            "date": "2018-09-07T09:31:06"
        }
    }
}
我敢肯定,我们搞砸了混合动力车设置的某些步骤,但不知道是哪一步。有人能指出一些我们应该仔细检查的配置吗?这可能是什么原因

用于生成访问令牌的作用域包括
Mail.Read
,根据is Exchange server 2016 CU10上的表,我们的on-prem Exchange server版本为15.1.1531.3

此外,如果我在浏览器中直接点击我们的on-prem安装的以下URL,它会要求我提供电子邮件和密码:

https://(myonprem.exchange.com)/api/v2.0/me/messages
当我提供该选项时,它以JSON格式返回邮箱内容,因此这意味着API也可以在prem服务器上使用。只是Microsoft Graph无法以某种方式找到它

此Exchange服务器安装在Azure上。因此,如果我可以从我的家庭互联网连接访问它的
/api
虚拟目录,那么MicrosoftGraph也应该能够访问它。所以,这也不可能是防火墙问题


但我想指出的一点是,来自此服务器的出站电子邮件无法工作。执行混合设置的系统管理员告诉我,出站电子邮件所需的SMTP端口在Azure上被阻止。这可能是我问题的原因吗?谢谢大家的评论。我们终于成功了。以下是我们的系统管理员发现并修复的一些问题:

  • 我们的office 365帐户和prem服务器上的exchange的时区不相同。我们做了同样的。这有助于active directory同步
  • 未正确配置自动发现。DNS记录和SSL证书都存在问题

  • 本地Active Directory是否与Azure Active Directory同步?我们可以在这里获得更多详细信息,请参阅以检查REST API是否满足在混合环境中工作的所有要求。感谢大家的评论。我们终于成功了。以下是我们的系统管理员发现并修复的一些问题:1。我们的office 365帐户和prem服务器上的exchange的时区不相同。我们做了同样的。这有助于active directory同步。2.未正确配置自动发现。DNS记录和SSL证书都存在问题。穆罕默德我会要求您将上述评论作为答案发布,以便此线程被视为已回答,其他成员也可以将其作为解决方案。@Mohit_Garg Done:-)