使用 Kerberos 票证访问 WebDAV

使用 Kerberos 票证访问 WebDAV

使用 Apache 的 mod_dav 作为服务器,使用 Samba 4.1.17 作为服务器,并使用 Windows 7 及以上版本作为客户端,如何使用 Kerberos 挂载 WebDAV 共享进行身份验证?

目前,我已确认 WebDAV 和 Kerberos 可与 IE 和 Firefox 用户代理配合使用。以下是 IE 工作的示例:

[23/Aug/2015:15:22:56 +0100] "GET / HTTP/1.1" 200 1062 "-" "Mozilla/4.0 (compatible; MSIE 7.0; Windows NT 10.0; Trident/8.0; .NET4.0C; .NET4.0E)"
[23/Aug/2015:15:22:59 +0100] "GET /favicon.ico HTTP/1.1" 404 778 "-" "Mozilla/4.0 (compatible; MSIE 7.0; Windows NT 10.0; Trident/8.0; .NET4.0C; .NET4.0E)"

当我尝试映射或浏览它时,总是会失败,Apache 只记录了 401 错误:

[23/Aug/2015:15:23:21 +0100] "OPTIONS / HTTP/1.1" 401 814 "-" "Microsoft-WebDAV-MiniRedir/10.0.10240"
[23/Aug/2015:15:23:21 +0100] "OPTIONS / HTTP/1.1" 401 813 "-" "Microsoft-WebDAV-MiniRedir/10.0.10240"
[23/Aug/2015:15:23:21 +0100] "OPTIONS / HTTP/1.1" 401 813 "-" "Microsoft-WebDAV-MiniRedir/10.0.10240"
[23/Aug/2015:15:23:21 +0100] "OPTIONS / HTTP/1.1" 401 813 "-" "Microsoft-WebDAV-MiniRedir/10.0.10240"

在这种情况下,Windows 报告“由于用户尚未经过身份验证,因此未执行所请求的操作”,因为该示例不是 HTTPS,并且我(故意)没有在注册表中启用没有 HTTPS 的基本身份验证。

这些请求的原始 HTTP 如下所示:

OPTIONS / HTTP/1.1
Connection: Keep-Alive
User-Agent: Microsoft-WebDAV-MiniRedir/10.0.10240
translate: f
Host: dav.exmaple.com

服务器回复:

HTTP/1.1 401 Authorization Required
Date: Sun, 23 Aug 2015 18:31:13 GMT
Server: Apache/2.2.22 (Debian)
WWW-Authenticate: Negotiate
WWW-Authenticate: Basic realm="Kerberos Login"
Vary: Accept-Encoding
Content-Length: 484
Keep-Alive: timeout=5, max=99
Connection: Keep-Alive
Content-Type: text/html; charset=iso-8859-1

看起来客户端完全忽略了服务器与我进行协商的尝试。

我读了很多信息如何使困惑损坏的 WebDAV 客户端在 Windows 上,所以当我之前的努力(在 /upload/private)不起作用时,我设置了一个单独的子域,其中为整个命名空间启用了 WebDAV 和非强制 SSL,这就是这些示例中所使用的。

使用的证书受到客户端信任,HTTP 和 HTTPS 情况几乎完全一样。唯一的区别是,如果使用 HTTPS,则会显示凭据选择器,但我不想手动输入凭据并按照基本身份验证路线进行操作。

我也尝试使用以下方式进行安装:

net use \\dav.example.com *
net use \\dav.example.com\ *
net use http://dav.example.com/ *
net use http://dav.example.com *
net use \\dav.example.com@SSL *
net use \\dav.example.com@SSL\ *
net use https://dav.example.com/ *
net use https://dav.example.com *

全部都失败了。

怎么回事?我该如何说服 WebDAV mini 重定向器使用 Kerberos 进行身份验证?这可能吗?这里的最终目标是为用户提供真正的 SSO。

答案1

您是否查看过 HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\WebClient\Parameters AuthForwardServerList 条目(知识库 943280)?

这对我有用。

相关内容