Назад | Перейти на главную страницу

Что делает AuthForwardServerList?

Немного контекста: у нас есть несколько клиентов 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-адрес следующим образом:

  • «Если URL-адрес не содержит точки в имени сервера, как в следующем примере, предполагается, что сервер находится на сайте локальной интрасети». http: // sharepoint / davshare
  • "Если URL-адрес содержит точки, предполагается, что сервер находится в Интернете. Точки указывают, что вы используете адрес FQDN. Поэтому учетные данные не отправляются на этот сервер автоматически, если не настроен прокси-сервер и если этот сервер не указан для прокси-сервера. обход ».

Это либо глупая оплошность, либо до смешного ленивая. Не было бы ни проблемы, ни исправления, ни AuthForwardServerList ключ, если служба Win HTTP просто ссылается на зоны безопасности IE.