【发布时间】: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