【问题标题】:Office365 autodiscover.xml returns 403 ForbiddenOffice365 autodiscover.xml 返回 403 Forbidden
【发布时间】:2020-05-27 08:29:50
【问题描述】:

我正在编写一个简单的基准测试脚本,该脚本需要https://outlook.office365.com/autodiscover/autodiscover.xml 提供的信息。我正在使用我的 Outlook.com 电子邮件凭据进行基本身份验证,并且在我的计算机上进行测试时效果很好。

当我与同事共享脚本时(使用相同的凭据),他收到了403 Forbidden 对请求的响应。经过反复试验后,该脚本似乎可以在我所在国家/地区的多个不同网络上运行,但是一旦我从另一个国家/地区运行它,我就会得到403 Forbidden。由于这是一个基准脚本,因此我必须使用相同的凭据。

鉴于脚本始终相同,我无法获得有关可能导致问题的任何信息,我怀疑这可能是一项安全功能,阻止用户从不同国家/地区进行身份验证,但我找不到任何文档甚至提到它。

有人知道导致 403 的原因吗?

【问题讨论】:

  • 能否发布一些您使用的代码,如果您不设置用户代理,可能会导致 Office365 中的 403 自动发现
  • 绝对:fetch(url, { method: "POST", headers: { "Content-Type": "text/xml; charset=utf-8", "Accept": "*/*", "Authorization": "Basic <<BASE-64 ENCODED U:P>>", "X-User-Identity": "<<USER-EMAIL>>, "User-Agent": "MacOutlook/16.37.20051002 (Intelx64 Mac OS X Version 10.15.3 (Build 19D76))" }, body: "<<XML-PAYLOAD>>" 我也试过我的浏览器和 curl User-Agent 字符串无济于事。
  • 可能涉及到两因素身份验证。一旦您通过了 2 因子 O365 将在一段时间内记住您的系统。也许其他位置应该在尝试您的脚本之前先尝试使用(私人)浏览器会话?您是否检查了返回的 403 错误是否还带有实际的 HTML 页面?

标签: exchange-server exchangewebservices http-status-code-403 autodiscovery


【解决方案1】:

查看是否可以在 IIS 日志文件中找到 403 response。大约有 20 种不同类型的 403 错误。最常见的原因是使用 http 而不是 https 来访问需要 SSL 的资源。但是,如果您确定您使用的是来自外部位置的 https,那么它一定是其他类型的 403 错误之一。 iis 日志文件将显示它是哪一个。

您可以在 IIS 中重置自动发现虚拟目录,并确保每个 SMTP 域都存在外部 DNS 条目。

更多信息请参考this

【讨论】:

  • 在这种情况下我无权访问 IIS 日志,因为这是 O365 outlook.office365.com 服务,不是由我托管的。
【解决方案2】:

我找到了答案。当针对autodiscover.xml 和其他API 的请求从以前没有通过网站登录的国家/地区发送时,API 请求会以403 Forbidden 进行响应,并在Activity log 中标记为Unusual activity

使用该国家/地区的浏览器登录帐户后,API 请求在几分钟内开始工作。目前,我不知道该国家/地区会在多长时间内被列入白名单,然后我才必须重新手动登录。

【讨论】:

    猜你喜欢
    • 2012-01-22
    • 1970-01-01
    • 2012-08-26
    • 1970-01-01
    • 1970-01-01
    • 2014-06-15
    • 1970-01-01
    • 2023-03-11
    • 1970-01-01
    相关资源
    最近更新 更多