Use o tíquete Kerberos para acessar o WebDAV

Use o tíquete Kerberos para acessar o WebDAV

Usando o mod_dav do Apache como servidor, Samba 4.1.17 como servidor e qualquer versão do Windows a partir de 7 como cliente, como posso montar um compartilhamento WebDAV usando Kerberos para autenticação?

Atualmente tenho WebDAV e Kerberos confirmados trabalhando com agentes de usuário do IE e Firefox. Aqui está um exemplo de funcionamento do 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)"

Quando tento mapear ou navegar até ele, isso sempre falha, com erros 401 sendo as únicas coisas registradas pelo 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"

O Windows relata "A operação solicitada não foi executada porque o usuário não foi autenticado" neste caso, pois esse exemplo não era HTTPS e eu (deliberadamente) não habilitei a autenticação básica sem HTTPS no registro.

O HTTP bruto para essas solicitações é semelhante a:

OPTIONS / HTTP/1.1
Connection: Keep-Alive
User-Agent: Microsoft-WebDAV-MiniRedir/10.0.10240
translate: f
Host: dav.exmaple.com

O servidor responde 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

Parece que o cliente está ignorando totalmente as tentativas do servidor de negociar comigo.

Eu limuita informaçãosobre comoconfusoeclientes WebDAV quebradosestão no Windows, então quando meus esforços anteriores (em/upload/private) não funcionaram, configurei um subdomínio separado onde o WebDAV está habilitado para todo o namespace e SSL não obrigatório, que é o que está sendo usado nestes exemplos.

O certificado usado é confiável para os clientes e ambos os casos HTTP e HTTPS falham (quase) de forma idêntica. A única diferença é que o seletor de credenciais é mostrado se HTTPS estiver sendo usado, mas não quero digitar credenciais manualmente e seguir a rota de autenticação básica.

Também tentei montar com:

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 *

Todos com o mesmo fracasso.

O que da? Como posso persuadir o mini redirecionador WebDAV a usar Kerberos para autenticação? É mesmo possível? O objetivo final aqui é o verdadeiro SSO para os usuários.

Responder1

Você deu uma olhada na entrada HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\WebClient\Parameters AuthForwardServerList (KB 943280)?

Isso funciona para mim.

informação relacionada