【问题标题】:Subscription protocol to Outlook REST API rich notification fails to create secure SSL channelOutlook REST API 丰富通知的订阅协议无法创建安全的 SSL 通道
【发布时间】:2017-11-17 10:44:04
【问题描述】:

我有一个使用 Outlook REST API v2.0 订阅丰富通知的网络应用。

几个月以来它一直运行良好,但从 18 天前开始,它在更新或创建订阅时开始发回 HTTP 400 代码。我将POST 发给:

https://outlook.office.com/api/v2.0/users/{id}/subscriptions

在 API 的响应正文中返回的错误代码如下:

通知 URL 验证失败。 System.Net.WebException:请求被中止:无法创建 SSL/TLS 安全通道。

从我的服务器,仍然收到带有令牌的POST 请求,并发回HTTP 200。这是一个带有 SSL 证书的HTTPS 网站。

是否有关于 Outlook REST API 的 SSL 版本的更新?或者关于协议(文档还没有提到)?这些突然失败的原因可能是什么?

Outlook webhook 订阅协议仍然适用于具有相同参数的 Microsoft Graph API。

编辑:Heroku 和 Cloudflare 之间的 SSL 配置问题会触发 400 错误,但仅限于 Outlook REST API...

【问题讨论】:

  • 如果这适用于 Microsoft Graph,为什么不简单地使用 Graph?这两个 API 应该可以互换。随着 Outlook REST API ]开始弃用](dev.office.com/blogs/…),无论如何,这都是你最终需要做的事情。
  • 感谢@MarcLaFleur 的观点。 Graph 中仍然没有的主要区别:丰富的通知。推送通知可以包含更多信息(使用选择),从而管理更具体的事件。希望它很快就会出现在 Graph API 中!

标签: ssl microsoft-graph-api outlook-restapi


【解决方案1】:

这意味着您的服务器和 Outlook REST API 之间支持的 SSL/TLS 协议不匹配。试试 ssllabs.com 看看双方都支持哪些协议。

您的网络应用程序是用 .NET 编写的吗?在 4.6 之前的版本上,默认不启用最新的 TLS 协议版本。

【讨论】:

  • 我的应用程序是用 Ruby on Rails 编写的,托管在 Heroku 上,具有由 cloudflare 管理的 SSL 证书。我的网站使用 ssllabs 获得了 A+ - 它支持 HSTS、TLS 直到 1.3 版本。 outlook.office.com 获得 A,支持 TLS 直到 1.2。由于我没有更改任何内容,较低级别的安全性怎么可能导致 SSL/TLS 不匹配?
  • 从您的帖子中不清楚您的应用是否正在连接到 Outlook,或者相反:您提到“从我的服务器,仍然收到带有令牌的 POST 请求”。您发布的错误消息来自 .NET 应用程序。我认为此错误来自 Outlook REST API?
  • 确实很抱歉。我的 Rails 应用程序发出 POST 调用来订阅,这会触发通知 URL 验证,应用程序从一侧接收 POST 验证,然后从另一侧的订阅端点获取答案。错误消息是响应正文中的内容,由 Outlook REST API 发送,导致尝试订阅(POST 到 url:https://outlook.office.com/api/v2.0/users/{id}/subscriptions.
  • 清除,谢谢。因此 Outlook REST API 无法与您的服务器建立 HTTPS 连接。除了 TLS 版本,这还取决于任何一方支持的散列函数、密钥交换算法和密码。自 8 月 31 日 (devcenter.heroku.com/changelog-items/1195) 以来,Heroko 已禁用 TLS 1.0,因此不可能。您在 Heroku 中的 SSL 端点是否使用自签名证书? Heroku 建议使用 curl 来测试您的端点:devcenter.heroku.com/articles/ssl-endpoint#testing-ssl
  • 感谢您的帮助,我找到了解决方案!确实是heroku和cloudflare之间ssl配置的问题。 SSL 在它们之间没有启用,仅在 cloudflare 和最终用户之间启用。现在好了!
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2018-12-19
  • 1970-01-01
  • 2018-05-24
  • 2019-04-20
  • 2021-12-13
  • 2014-12-26
  • 2017-02-10
相关资源
最近更新 更多