AuthForwardServerList 有什么作用?

AuthForwardServerList 有什么作用?

简单介绍一下,我们有几个 Windows 7 客户端连接到 LDAP 支持的 Samba PDC。我们还有一个 Zimbra 8 服务器,它通过同一个 LDAP 进行身份验证。当用户登录到 Windows 7 客户端时,批处理脚本会映射 Samba 服务器上的多个网络驱动程序。所有这一切都运行良好。

现在,我想在用户使用 WebDAV 登录时映射每个用户的 Zimbra 公文包文件夹。我们net use Z: https://mail.ourserver.com/dav/user/Briefcase /u:user在批处理脚本中添加了:但是,它仅在用户手动将密码输入到打开的命令提示符后才有效。

显然,我希望能够在这里使用 Windows 登录凭据挂载驱动器,并且在他们已经登录后无需再次提示输入密码。使用net use Z: https://our.server.com/dav/user/Briefcase /u:user password有效,但我们无权访问用户的纯文本密码,因此不是一个选择。

我偶然发现AuthForwardServerList知识库文章,据说可以解决通过 WebDAV 连接到 SharePoint 服务器时出现的类似问题。我尝试添加注册表项及其值https://*.ourserver.com和各种组合,重新启动计算机,但这似乎没有效果。net use仍然提示输入密码,Windows 资源管理器中的“映射网络驱动器”选项也是如此。

所以我的问题是,它AuthForwardServerList实际上是如何工作的?它只适用于 Windows 服务器吗?服务器是否必须支持 NTLM?或者它是否适用于使用 BasicAuth 的任何 WebDAV 服务器?它只适用于 IE,而不适用于 Windows 资源管理器吗?

或者,有什么方法可以访问用户刚刚用于登录机器的密码,并以某种方式将其传递给脚本?该脚本是在 samba 服务器上动态生成的,并在客户端上执行,因此即使可以在服务器上以纯文本形式捕获密码,也可以将其附加到脚本中。

答案1

我最近遇到了这个问题,想提供一个答案,尽管这个问题已经过时了。我的答案来自 TechNet知识库 943280

创建注册表项后AuthForwardServerList,WebClient 服务将读取该条目值。如果客户端计算机尝试访问与列表中任何表达式匹配的 URL,则即使未配置代理,用户凭据也将成功发送以对用户进行身份验证。

此功能是作为 Windows Vista 的修补程序提供的,并内置于 Windows 7 中,因为 [在我看来] Win HTTP 服务的工作方式存在很大缺陷。Win HTTP 服务忽略了 IE 的内置区域检查机制,该机制会查看站点是否位于本地 Intranet 区域,然后自动将凭据发送到该 Intranet 站点。相反,Win HTTP 会按以下方式评估 URL:

  • “如果 URL 中的服务器名称不包含句点,例如以下示例,则假定该服务器位于本地内联网站点上。”http://sharepoint/davshare
  • “如果 URL 包含句点,则假定服务器位于 Internet 上。句点表示您使用 FQDN 地址。因此,除非配置了代理,并且除非指示此服务器绕过代理,否则不会自动向此服务器发送任何凭据。”

这要么是愚蠢的疏忽,要么是极其懒惰。AuthForwardServerList如果 Win HTTP 服务只是引用 IE 的安全区域,那么就不会出现问题、没有修补程序,也不会有密钥。

相关内容