
Wie kann ich mit Apache mod_dav als Server, Samba 4.1.17 als Server und einer beliebigen Windows-Version ab 7 als Client eine WebDAV-Freigabe mit Kerberos zur Authentifizierung mounten?
Derzeit habe ich bestätigt, dass WebDAV und Kerberos mit den Benutzeragenten von IE und Firefox funktionieren. Hier ist ein Beispiel für die Funktionsweise von 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)"
Wenn ich versuche, eine Karte darauf zu erstellen oder dorthin zu navigieren, schlägt dies immer fehl. Apache zeichnet lediglich 401-Fehler auf:
[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 meldet in diesem Fall „Der angeforderte Vorgang wurde nicht ausgeführt, da der Benutzer nicht authentifiziert wurde“, da es sich in diesem Beispiel nicht um HTTPS handelte und ich (absichtlich) die grundlegende Authentifizierung ohne HTTPS in der Registrierung nicht aktiviert habe.
Das Roh-HTTP für diese Anfragen sieht folgendermaßen aus:
OPTIONS / HTTP/1.1
Connection: Keep-Alive
User-Agent: Microsoft-WebDAV-MiniRedir/10.0.10240
translate: f
Host: dav.exmaple.com
Der Server antwortet mit:
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
Für mich sieht es so aus, als würde der Client die Verhandlungsversuche des Servers völlig ignorieren.
Ich habe gelesenviel InformationwieverwirrtUnddefekte WebDAV-Clientssind unter Windows, also habe ich, als meine früheren Bemühungen (unter /upload/private) nicht funktionierten, eine separate Subdomäne eingerichtet, in der WebDAV für den gesamten Namespace und nicht obligatorisches SSL aktiviert ist, was in diesen Beispielen verwendet wird.
Das verwendete Zertifikat wird von den Clients als vertrauenswürdig eingestuft und sowohl im HTTP- als auch im HTTPS-Fall schlägt es (fast) identisch fehl. Der einzige Unterschied besteht darin, dass die Anmeldeinformationsauswahl angezeigt wird, wenn HTTPS verwendet wird, aber ich möchte die Anmeldeinformationen nicht manuell eingeben und den Weg der Basisauthentifizierung gehen.
Ich habe auch versucht, die Montage mit folgendem Verfahren durchzuführen:
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 *
Alle mit dem gleichen Fehler.
Was ist los? Wie kann ich den WebDAV-Mini-Redirector dazu bringen, Kerberos zur Authentifizierung zu verwenden? Ist das überhaupt möglich? Das Endziel ist echtes SSO für die Benutzer.
Antwort1
Haben Sie sich den Eintrag HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\WebClient\Parameters AuthForwardServerList angesehen (KB 943280)?
Das funktioniert bei mir.