使用Apache的mod_dav作为服务器,Samba 4.1.17作为服务器,任何版本的Windows从7作为客户端,我如何使用Kerberos来挂载WebDAV共享进行身份validation?
目前我有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)"
当我尝试映射或浏览它时,总是失败,401错误是Apachelogging的唯一事情:
[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报告“请求的操作没有执行,因为用户没有通过身份validation”,因为这个例子不是HTTPS,我已经(有意)没有启用没有HTTPS的基本身份validation在registry中。
这些请求的原始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上的困惑和破坏 的信息 ,所以当我以前的工作(at / upload / private)不起作用时,我设置了一个独立的子域,其中为整个名称空间启用了WebDAV,非强制性的SSL,这是在这些例子中使用的。
所使用的证书受到客户端的信任,并且HTTP和HTTPS情况都失败(几乎)完全相同。 唯一的区别是,如果正在使用HTTPS,则显示credtentials choser,但是我不想手动input凭据,然后进入Basic Auth路由。
我也试着用:
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迷你redirect器使用Kerberos进行身份validation? 这甚至有可能吗? 这里的最终目标是为用户提供真正的SSO。