Немного контекста: у нас есть несколько клиентов Windows 7, подключенных к PDC Samba с поддержкой LDAP. У нас также есть сервер Zimbra 8, который аутентифицируется через тот же LDAP. Когда пользователи входят в систему клиентов Windows 7, пакетный сценарий сопоставляет количество сетевых драйверов на сервере Samba. Все это хорошо работает.
Теперь я хотел бы сопоставить папку портфеля Zimbra каждого пользователя, когда пользователь входит в систему с помощью WebDAV. Мы добавили: 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
ключ реестра, указанный в этот Статья базы знаний, которая должна решить аналогичную проблему при подключении к серверам SharePoint через WebDAV. Я пробовал добавить ключ реестра со значением https://*.ourserver.com
и различные его комбинации перезапустили машину, но, похоже, это не повлияло. net use
по-прежнему запрашивает пароль, как и параметр «Подключить сетевой диск» в проводнике Windows.
Итак, мой вопрос, как AuthForwardServerList
на самом деле работает? Работает ли он только с серверами Windows, должен ли сервер поддерживать NTLM или он будет работать с любым сервером WebDAV, использующим BasicAuth? Он работает только с IE, а не с Windows Explorer?
В качестве альтернативы, могу ли я получить доступ к паролю, который пользователь только что использовал для входа в систему, и каким-то образом передать его скрипту? Сценарий динамически создается на сервере Samba и выполняется на клиенте, поэтому даже если пароль может быть записан в виде обычного текста на сервере, его можно будет добавить в сценарий.
Я недавно столкнулся с этим и хотел дать ответ, хотя вопрос датирован. Мой ответ исходит из TechNet КБ 943280.
После AuthForwardServerList
ключ реестра создан, служба WebClient прочитает значение записи. Если клиентский компьютер пытается получить доступ к URL-адресу, который соответствует любому из выражений в списке, учетные данные пользователя будут успешно отправлены для аутентификации пользователя, даже если прокси-сервер не настроен.
Эта функция была предоставлена как исправление для Windows Vista и была встроена в Windows 7 из-за [на мой взгляд] большого недостатка в работе службы HTTP Win. Служба Win HTTP игнорирует встроенный в IE механизм проверки зоны, который проверяет, находится ли сайт в зоне локальной интрасети, а затем автоматически отправляет учетные данные на этот сайт интрасети. Вместо этого Win HTTP оценивает URL-адрес следующим образом:
Это либо глупая оплошность, либо до смешного ленивая. Не было бы ни проблемы, ни исправления, ни AuthForwardServerList
ключ, если служба Win HTTP просто ссылается на зоны безопасности IE.