Pergunta

Nós utilizar a autenticação DIGEST para o nosso acesso WebDAV. Observamos que os clientes Windows enviar cada pedido duas vezes. Primeiro pedido não tem cabeçalho Authorization (e recebe resposta 401), segundo pedido tem cabeçalho Authorization (e geralmente obtém resposta correta).

Enquanto usuário provavelmente não pode ver isso, torna o acesso WebDAV inteiro mais lento então necessário.

É possível evitar esse comportamento de alguma forma? Talvez alguma resposta especial que vai convencer o Windows não fazer isso? Quando usamos BASIC vez de digerir, ele funciona muito bem (fazendo pedido única somente com cabeçalho Authorization sempre incluído)

Foi útil?

Solução

Eu acredito que o método descrito, o que é chamado de "resposta de desafio /" método, é a destinado comportamento para WebDAV. Pelo menos, é de acordo com as características . Essa primeira solicitação sem cabeçalhos de autenticação é necessária; WebDAV a resposta contém um uso único para validar o próximo pedido, ajudando deflectem contra, por exemplo, ataques de repetição.

Assim, a linha inferior: você não pode, e não deve tentar evitar esse comportamento.

Como a seus clientes não-Windows que estão fazendo isso ... é possível que eles são cache e reutilizar o nonce de alguma forma depois de uma chamada de desafio / resposta inicial. Este é certamente permitido nas especificações - mesmo que o nonce é suposto ser um item de uso único, as especificações permitem que servidores WebDAV para fazer o nonce de curta duração em várias solicitações. É possível que seus clientes não-Windows são capazes de reconhecer seu servidor WebDAV e agir em conformidade, mas os clientes do Windows não são.

Nesse caso, eu não sei de um trabalho em torno além de pedir aos usuários para encontrar um cliente que armazena um nonce. Infelizmente, eu não posso ajudá-lo a encontrar um cliente. Meu Google-fu falhou a esse respeito.

Outras dicas

Você também pode pesquisar algo chamado "pré-autenticação". Pré-autenticação está enviando a primeira solicitação com um cabeçalho de autenticação em oposição ao envio de uma solicitação anônima inital.

Enquanto as aplicações e serviços web são ideais para isso desde que você normalmente saber de antemão se a autenticação é necessária, você normalmente não sei se um web site requer autenticação de antemão.

WebFolders / WebDAV é um caso especial, mas novamente, você não tem certeza.

O problema com pré-autenticação é que você está potencialmente enviar informações para um site que você não necessariamente confiar. Autenticação básica daria as chaves do reino (User / password em texto simples), no entanto Negociar, NTLM e Digest não são tão ruins.

Você pode dar uma olhada aqui em preauthenticating em .Net para um serviço web, que eu tenho usado com sucesso eliminar a inicial 401.

Se você está debatendo com o do Windows WebFolder Cliente você pode querer ter um olhar para esta lista questões hospedado no greenbytes site do WebDAV . Se você notou quaisquer detalhes específicos do Vista não contidos na lista, por favor, enviar uma nota para os editores.

Um trabalho em torno se você não se importa permitindo uma configuração menos segura é permitir listando pedidos PROPFIND e tudo autenticar outra hierarquia de diretório anônimo; consulte http://blog.klinsight.com/2013/02/ -windows-webdav double-authentication.html - (Eu escrevi esse post para o meu trabalho). A economia de tempo é significativo.

Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top