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

Используйте билет 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)"

Когда я пытаюсь отобразить или просмотреть его, это всегда терпит неудачу, и Apache записывает только ошибку 401:

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

Клиенты доверяют используемому сертификату, и оба случая HTTP и HTTPS терпят неудачу (почти) идентично. Единственная разница в том, что средство выбора кредитов отображается, если используется HTTPS, но я не хочу вручную вводить учетные данные и переходить по маршруту базовой аутентификации.

Я также пробовал монтировать с помощью:

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 для аутентификации? Это вообще возможно? Конечная цель здесь - истинная система единого входа для пользователей.

Вы видели запись HKEY_LOCAL_MACHINE \ SYSTEM \ CurrentControlSet \ Services \ WebClient \ Parameters AuthForwardServerList (КБ 943280)?

У меня это работает.