Используйте билет Kerberos для доступа к WebDAV

Используя Apache mod_dav в качестве сервера, Samba 4.1.17 в качестве сервера и любую версию Windows от 7 и выше в качестве клиента, как я могу смонтировать общий ресурс WebDAV, используя Kerberos для аутентификации?

В настоящее время у меня есть 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, которые были записаны Apache:

[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, поэтому, когда мои предыдущие попытки (at /upload/private) не сработали, я настроил отдельный поддомен, где WebDAV включен для всего пространства имен, и необязательный SSL, который используется в этих примерах.

Используемый сертификат является доверенным для клиентов, и оба случая HTTP и HTTPS терпят неудачу (почти) идентично. Единственное отличие состоит в том, что при использовании HTTPS показывается средство выбора кредитов, но я не хочу вводить учетные данные вручную и идти по маршруту 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 использовать Kerberos для аутентификации? Это вообще возможно? Конечная цель - это единый вход для пользователей.

1 ответ

Вы просматривали запись HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\WebClient\Parameters AuthForwardServerList ( KB 943280)?

Это работает для меня.

Другие вопросы по тегам