ResourceNotFound - 使用 Microsoft Graph API 访问混合 Exchange 设置中的本地邮箱
ResourceNotFound - Using Microsoft Graph API to Reach On-Prem mailboxes in Hybrid Exchange Setup
根据 these videos,看起来可以在混合设置中访问本地 Exchange 邮箱,就像使用 Microsoft Graph API.
的 Exchange 在线邮箱一样
因此,我们有一个混合设置,其中一些邮箱仅在本地。 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
,我们的本地 Exchange 服务器版本是 15.1.1531.3,根据 this page 上的 table 是 Exchange Server 2016年CU10.
此外,如果我在浏览器中直接点击我们本地安装的以下 URL,它会要求我提供电子邮件和密码:
https://(myonprem.exchange.com)/api/v2.0/me/messages
当我提供时,它 returns 邮箱内容采用 JSON 格式,因此这意味着 API 在本地服务器上也可用。只是 Microsoft Graph 无法以某种方式找到它。
此 Exchange 服务器安装在 Azure 上。因此,如果我可以从我的家庭互联网连接访问它的 /api
虚拟目录,那么 Microsoft Graph 应该也可以访问它。所以,也不可能是防火墙的问题。
我想指出的一件事是来自该服务器的出站电子邮件无法正常工作。执行混合设置的系统管理员告诉我,出站电子邮件所需的 SMTP 端口在 Azure 上被阻止。这可能是我的问题的原因吗?
感谢大家的评论。我们终于让它工作了。以下是我们的系统管理员发现并修复的一些问题:
- 我们的 office 365 账户和 exchange 本地服务器的时区不一样。我们让他们一样。这有助于活动目录同步。
- 自动发现配置不正确。 DNS 记录和 SSL 证书都有问题。
根据 these videos,看起来可以在混合设置中访问本地 Exchange 邮箱,就像使用 Microsoft Graph API.
的 Exchange 在线邮箱一样因此,我们有一个混合设置,其中一些邮箱仅在本地。 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
,我们的本地 Exchange 服务器版本是 15.1.1531.3,根据 this page 上的 table 是 Exchange Server 2016年CU10.
此外,如果我在浏览器中直接点击我们本地安装的以下 URL,它会要求我提供电子邮件和密码:
https://(myonprem.exchange.com)/api/v2.0/me/messages
当我提供时,它 returns 邮箱内容采用 JSON 格式,因此这意味着 API 在本地服务器上也可用。只是 Microsoft Graph 无法以某种方式找到它。
此 Exchange 服务器安装在 Azure 上。因此,如果我可以从我的家庭互联网连接访问它的 /api
虚拟目录,那么 Microsoft Graph 应该也可以访问它。所以,也不可能是防火墙的问题。
我想指出的一件事是来自该服务器的出站电子邮件无法正常工作。执行混合设置的系统管理员告诉我,出站电子邮件所需的 SMTP 端口在 Azure 上被阻止。这可能是我的问题的原因吗?
感谢大家的评论。我们终于让它工作了。以下是我们的系统管理员发现并修复的一些问题:
- 我们的 office 365 账户和 exchange 本地服务器的时区不一样。我们让他们一样。这有助于活动目录同步。
- 自动发现配置不正确。 DNS 记录和 SSL 证书都有问题。