Domanda

Usiamo l'autenticazione del digest per il nostro accesso WebDAV. Osserviamo che i client Windows invia ogni richiesta due volte. Prima richiesta non ha Authorization intestazione (e ottiene 401 risposte), la seconda richiesta è <=> intestazione (e di solito ottiene la risposta corretta).

Mentre utente probabilmente non può vedere questo, rende tutto più lento accesso WebDAV quindi necessario.

E 'possibile evitare questo comportamento in qualche modo? Forse qualche risposta speciale che convincerà di Windows non farlo? Quando usiamo BASIC invece di digerire, funziona benissimo (facendo un'unica richiesta soltanto con <=> intestazione sempre inclusa)

È stato utile?

Soluzione

Io credo che il metodo che hai descritto, che si chiama un metodo di "challenge / response", è il destinato il comportamento per WebDAV. Almeno è secondo le specifiche . Quella prima richiesta senza intestazioni Auth è necessario; la risposta da WebDAV contiene un nonce per convalidare la richiesta successiva, aiutando deviare contro, per esempio, attacchi replay.

Quindi, linea di fondo: non si può, e non dovrebbe cercare di evitare questo comportamento.

Per quanto riguarda i client non Windows che stanno facendo questo ... è possibile che stanno caching e riutilizzo del nonce, in qualche modo, dopo una chiamata di sfida / risposta iniziale. Questo è certamente consentito nelle specifiche - anche se il nonce dovrebbe essere un elemento monouso, le specifiche consentono ai server WebDAV per rendere il nonce di breve durata tra più richieste. E 'possibile che i vostri clienti non Windows sono in grado di riconoscere il server WebDAV e agire di conseguenza, ma i client Windows non lo sono.

In questo caso, non so di un lavoro in giro diverso da quello di chiedere agli utenti di trovare un cliente che memorizza nella cache un nonce. Purtroppo, non posso fare a trovare un tale cliente. Il mio Google-fu ha fallito in questo proposito.

Altri suggerimenti

È anche possibile la ricerca qualcosa chiamato "Preauthentication". Preautenticazione sta inviando la prima richiesta con un'intestazione di autenticazione in contrasto con l'invio di una richiesta anonima inital.

Mentre le applicazioni e servizi web sono ideali per questo dal momento che in genere si sa in anticipo se è richiesta l'autenticazione, in genere non si sa se un sito web richiede l'autenticazione in anticipo.

WebFolders / WebDAV è un caso speciale, ma ancora una volta, non si è sicuri.

Il problema con l'autenticazione preliminare è che si stanno potenzialmente inviando informazioni a un sito che non necessariamente attendibili. Autenticazione di base darebbe via le chiavi del regno (utente / password in chiaro), tuttavia Negoziare, NTLM e Digest non sono così male.

Si può dare un'occhiata qui su preauthenticating in .Net per un servizio web, che ho usato con successo eliminare l'iniziale 401.

Se si struggeling con il client Windows WebFolder si potrebbe desiderare di avere uno sguardo a questo elenco di problemi ospitata al GreenBytes sito WebDav . Se avete notato eventuali dettagli specifici Vista non contenuti nella lista, si prega di inviare una nota agli editori.

Un lavoro intorno se non ti dispiace che permette una configurazione meno sicuro è quello di permettere gerarchia di directory anonima messa in vendita di richieste PROPFIND e autenticare tutto il resto; vedi http://blog.klinsight.com/2013/02/ finestre-WebDAV-double-authentication.html - (ho scritto quel post per il mio lavoro). Il risparmio di tempo è significativo.

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top