不久前,我在 PHP 应用程序中开发了 WebDAV 功能。在其中,我使用基本身份验证来识别系统中的用户。我们在没有身份验证的情况下响应请求,并在标头中提供适当的响应:
WWW-验证:基本领域=示例,字符集=“UTF-8”。
我最近遇到了一个问题,即通过 WebDAV 进行编辑停止工作。分析错误后,我发现该问题仅出现在最新版本的 Office macOS 中。更准确地说,从 16.81 升级到 16.84 会导致不正确的行为。问题在于,不是从 Word 发送标题:
授权:基本XXX
MS Word 现在发送:
授权:Bearer(此处为空)
因此问题是,Microsoft 是否禁用了对基本身份验证的支持? 输入登录名/密码的请求仍然出现,凭据根本没有发送。
除了实现对不同身份验证方案的支持之外,还有其他方法可以解决此问题吗?
现代版本支持哪些身份验证方案?
以下是将 MS Word 标头发送到我的服务器的可用授权类型:
"accept-auth": [ "badger,Wlid1.1,Bearer,Basic,NTLM,Digest,Kerberos,Negotiate,Nego2" ]
完整的客户端标头:
{
"host": [
"default.stage-wiki.vpool.qsoft.ru"
],
"x-real-ip": [
"10.42.0.183"
],
"x-forwarded-for": [
"10.42.0.183, 10.42.0.183"
],
"connection": [
"close"
],
"user-agent": [
"Microsoft Office Excel/16.84.414 (Mac OS/13.2.1; Desktop; ru-RU; NonAppStore; Apple/MacBookPro16,3)"
],
"accept": [
"*/*"
],
"accept-auth": [
"badger,Wlid1.1,Bearer,Basic,NTLM,Digest,Kerberos,Negotiate,Nego2"
],
"accept-encoding": [
"gzip, deflate, br"
],
"accept-language": [
"ru"
],
"authorization": [
"Bearer"
],
"x-featureversion": [
"1"
],
"x-forwarded-host": [
"default.stage-wiki.vpool.qsoft.ru"
],
"x-forwarded-port": [
"80"
],
"x-forwarded-proto": [
"http"
],
"x-forwarded-server": [
"traefik-f54bc5cb8-z2dwh"
],
"x-ms-cookieuri-requested": [
"t"
],
"x-msgetweburl": [
"t"
],
"x-office-major-version": [
"16"
],
"x-request-id": [
"ac059dea-711f-43be-9e48-99647427eb79"
],
"x-account-slug": [
"default"
]
}
我非常熟悉这个主题,我可以告诉您支持MS-OFBA和MS-OAUTH2EX。