Condividi tramite


Il digest IIS non consente l'autenticazione pass-through delle richieste proxy

Questo articolo illustra come risolvere il problema in cui l'autenticazione digest non riesce quando un client invia una richiesta tramite un proxy a un sito e Microsoft Internet Information Services (IIS) usa l'autenticazione digest.

Versione originale del prodotto: Internet Information Services
Numero KB originale: 3050055

Sintomi

Prendi in considerazione lo scenario seguente:

  • IIS è configurato per l'uso dell'autenticazione digest.
  • Il server riceve una richiesta con l'intestazione Via HTTP (HyperText Transfer Protocol). Questo comportamento si verifica se la richiesta client viene reindirizzata tramite un proxy.
  • La risorsa richiesta è protetta dall'autenticazione digest.
  • Viene creata una richiesta figlio nella pipeline IIS. Ad esempio, viene inviata una richiesta per il documento predefinito di una directory e l'URL inviato ha una barra (/) come ultimo carattere.

In questo scenario l'autenticazione digest ha esito negativo e il server restituisce una risposta 401.

Causa

Per motivi di sicurezza, le richieste indirizzate tramite un proxy e per cui viene creata una richiesta figlio nella pipeline IIS, IIS non può considerare attendibile l'autenticazione digest.

Soluzione alternativa

Configurare il sito Web per l'uso di un tipo di autenticazione diverso. Ad esempio, usare l'autenticazione di Windows o l'autenticazione di base su Transport Layer Security (TLS). In caso contrario, provare i metodi seguenti:

  • Chiedere al client di usare un URL di richiesta, incluso il nome del file dopo l'ultimo / carattere.
  • Impostare la modalità della pipeline gestita del pool di applicazioni su Classica.
  • Usare il modulo Di riscrittura URL per riscrivere il percorso URL da / a /filename.

Per usare il modulo Di riscrittura URL per risolvere questo problema, configurare il modulo come indicato di seguito:

<system.webServer>
    <rewrite>
        <rules>
            <rule name="<a rule name>" enabled="false">
                <match url="(^$|.*/$)" />
                <action type="Rewrite" url="{R:0}<a file name that you want the users to access>" />
            </rule>
        </rules>
    </rewrite>
</system.webServer>