Condividi tramite


Digest Digest AuthenticationAuthentication <>

Panoramica

L'elemento <digestAuthentication> contiene le impostazioni di configurazione per il modulo di autenticazione digest Internet Information Services (IIS) 7. Questo elemento viene configurato per abilitare o disabilitare l'autenticazione digest e, facoltativamente, è possibile specificare l'area di autenticazione digest.

L'autenticazione digest non viene ampiamente usata come autenticazione di base, ma presenta alcuni vantaggi distinti rispetto all'autenticazione di base o autenticazione di Windows. Lo svantaggio principale dell'uso dell'autenticazione di base su mezzi di comunicazione non crittografati consiste nel fatto che il nome utente e la password del client vengono inviati come messaggio di testo non crittografato con codifica base 64, rendendo molto semplice l'intercettazione da parte di un utente malintenzionato sulla comunicazione e il recupero del nome utente e della password. autenticazione di Windows risolve il problema tramite un'ampia gamma di opzioni di sicurezza, ma autenticazione di Windows in genere non funziona in un ambiente Internet.

L'autenticazione digest risolve entrambe le limitazioni precedenti nel modo seguente:

  • A differenza dello schema di testo non crittografato usato dall'autenticazione di base, l'autenticazione digest ha il client che invia un hash delle informazioni del client sul canale di comunicazione, pertanto il nome utente e la password del client non vengono mai inviati in rete.
  • L'autenticazione digest funziona correttamente su Internet, rendendo l'autenticazione digest più adatta a tale ambiente rispetto a autenticazione di Windows.

Nota

L'autenticazione digest protegge solo il nome utente e la password del client. Il corpo della comunicazione HTTP è ancora in testo non crittografato. Per proteggere il corpo della comunicazione, è necessario usare Secure Sockets Layer (SSL).

Compatibilità

Versione Note
IIS 10.0 L'elemento <digestAuthentication> non è stato modificato in IIS 10.0.
IIS 8,5 L'elemento <digestAuthentication> non è stato modificato in IIS 8.5.
IIS 8,0 L'elemento <digestAuthentication> non è stato modificato in IIS 8.0.
IIS 7,5 L'elemento <digestAuthentication> non è stato modificato in IIS 7.5.
IIS 7.0 L'elemento <digestAuthentication> è stato introdotto in IIS 7.0.
IIS 6.0 L'elemento <digestAuthentication> sostituisce parti delle proprietà della metabase iis 6.0 AuthType e AuthFlags .

Installazione

L'installazione predefinita di IIS 7 e versioni successive non include il servizio ruolo di autenticazione digest. Per usare l'autenticazione digest in IIS 7 e versioni successive, è necessario installare il servizio ruolo, disabilitare l'autenticazione anonima per il sito Web o l'applicazione e quindi abilitare l'autenticazione digest per il sito o l'applicazione.

Per installare il servizio ruolo di autenticazione digest, seguire questa procedura.

Windows Server 2012 o Windows Server 2012 R2

  1. Sulla barra delle applicazioni fare clic su Server Manager.
  2. In Server Manager fare clic sul menu Gestisci e quindi su Aggiungi ruoli e funzionalità.
  3. Nella procedura guidata Aggiungi ruoli e funzionalità fare clic su Avanti. Selezionare il tipo di installazione e fare clic su Avanti. Selezionare il server di destinazione e fare clic su Avanti.
  4. Nella pagina Ruoli server espandere Server Web (IIS), server Web, serverWeb, sicurezzae quindi selezionare Autenticazione digest. Fare clic su Avanti.
    Immagine del riquadro Server Web e Sicurezza espansa con l'opzione Autenticazione digest selezionata. .
  5. Nella pagina Selezione funzionalità fare clic su Avanti.
  6. Nella pagina Conferma selezioni per l'installazione fare clic su Installa.
  7. Nella pagina Risultati fare clic su Chiudi.

Windows 8 o Windows 8.1

  1. Nella schermata Start spostare il puntatore fino all'angolo inferiore sinistro, fare clic con il pulsante destro del mouse sul pulsante Start e quindi scegliere Pannello di controllo.
  2. In Pannello di controllo fare clic su Programmi e funzionalità e quindi su Attiva o disattiva funzionalità di Windows.
  3. Espandere Internet Information Services, servizi Web a livello globale, sicurezza, quindi selezionare Autenticazione digest.
    Screenshot del riquadro Servizi Web e sicurezza globale espanso con l'autenticazione digest evidenziata.
  4. Fare clic su OK.
  5. Fare clic su Close.

Windows Server 2008 o Windows Server 2008 R2

  1. Sulla barra delle applicazioni fare clic su Start, scegliere Strumenti di amministrazione, quindi fare clic su Server Manager.
  2. Nel riquadro della gerarchia Server Manager espandere Ruoli, quindi fare clic su Server Web (IIS).
  3. Nel riquadro Server Web (IIS) scorrere fino alla sezione Servizi ruolo e quindi fare clic su Aggiungi servizi ruolo.
  4. Nella pagina Selezione servizi ruolo della Procedura guidata Aggiungi servizi ruolo selezionare Autenticazione digest e quindi fare clic su Avanti. Immagine della pagina Seleziona servizi ruolo in cui è selezionata l'opzione Autenticazione digest.
  5. Nella pagina Conferma selezioni per l'installazione fare clic su Installa.
  6. Nella pagina Risultati fare clic su Chiudi.

Windows Vista o Windows 7

  1. Sulla barra delle applicazioni fare clic su Start e quindi su Pannello di controllo.
  2. In Pannello di controllo fare clic su Programmi e funzionalità e quindi su Attiva o disattiva funzionalità di Windows.
  3. Espandere Internet Information Services, servizi Web globale, sicurezza, selezionare Autenticazione digest e quindi fare clic su OK.
    Screenshot del riquadro Servizi Web e sicurezza globale espanso che mostra l'opzione Autenticazione digest selezionata.

Procedure

Come abilitare l'autenticazione digest e disabilitare l'autenticazione anonima

  1. Aprire Gestione Internet Information Services (IIS):

    • Se si usa Windows Server 2012 o Windows Server 2012 R2:

      • Sulla barra delle applicazioni fare clic su Server Manager, scegliere Strumenti, quindi fare clic su Gestione Internet Information Services (IIS).
    • Se si usa Windows 8 o Windows 8.1:

      • Tenere premuto il tasto Windows, premere la lettera X e quindi fare clic su Pannello di controllo.
      • Fare clic su Strumenti di amministrazione, quindi fare doppio clic su Gestione Internet Information Services (IIS).
    • Se si usa Windows Server 2008 o Windows Server 2008 R2:

      • Sulla barra delle applicazioni fare clic su Start, scegliere Strumenti di amministrazione, quindi fare clic su Gestione Internet Information Services (IIS).
    • Se si usa Windows Vista o Windows 7:

      • Sulla barra delle applicazioni fare clic su Start e quindi su Pannello di controllo.
      • Fare doppio clic su Strumenti di amministrazione, quindi fare doppio clic su Gestione Internet Information Services (IIS).
  2. Nel riquadro Connessioni espandere il nome del server, espandere Siti, quindi fare clic sul sito, l'applicazione o il servizio Web per cui si vuole abilitare l'autenticazione di base.

  3. Scorrere fino alla sezione Sicurezza nel riquadro Home e quindi fare doppio clic su Autenticazione.
    Immagine del riquadro Home nella sezione Sicurezza con l'applicazione di autenticazione evidenziata.

  4. Nel riquadro Autenticazione selezionare Autenticazione digest e quindi nel riquadro Azioni fare clic su Abilita.

  5. Nel riquadro Autenticazione selezionare Autenticazione anonima e quindi fare clic su Disabilita nel riquadro Azioni .
    Immagine del riquadro Autenticazione con l'opzione Autenticazione anonima evidenziata.

Configurazione

L'elemento <digestAuthentication> è configurabile a livello di sito, applicazione, directory virtuale e URL. Dopo aver installato il servizio ruolo, IIS 7 esegue il commit delle impostazioni di configurazione seguenti nel file di ApplicationHost.config.

<digestAuthentication enabled='false' />

Attributi

Attributo Descrizione
enabled Attributo booleano facoltativo.

Specifica se l'autenticazione digest è abilitata.

Il valore predefinito è false.
realm Attributo String facoltativo.

Specifica l'area di autenticazione per l'autenticazione digest.

Elementi figlio

Nessuno.

Esempio di configurazione

L'esempio di configurazione seguente abilita l'autenticazione digest per un sito Web, un'applicazione Web o un servizio Web. Per impostazione predefinita, queste impostazioni devono essere incluse nel file di ApplicationHost.config ed è necessario includerle in un <location> elemento e usare l'attributo path per definire il sito Web o l'applicazione in cui si desidera applicare le impostazioni di autenticazione.

<security>
   <authentication>
      <anonymousAuthentication enabled="false" />
      <digestAuthentication enabled="true" />
   </authentication>
</security>

Codice di esempio

Negli esempi seguenti viene abilitata l'autenticazione digest per un sito.

AppCmd.exe

appcmd.exe set config "Contoso" -section:system.webServer/security/authentication/digestAuthentication /enabled:"True" /commit:apphost

Nota

È necessario assicurarsi di impostare il parametro commit su apphost quando si usa AppCmd.exe per configurare queste impostazioni. In questo modo le impostazioni di configurazione vengono confermate nella sezione relativa al percorso appropriato nel file ApplicationHost.config.

C#

using System;
using System.Text;
using Microsoft.Web.Administration;

internal static class Sample {

   private static void Main() {

      using(ServerManager serverManager = new ServerManager()) { 
         Configuration config = serverManager.GetApplicationHostConfiguration();

         ConfigurationSection digestAuthenticationSection = config.GetSection("system.webServer/security/authentication/digestAuthentication", "Contoso");
         digestAuthenticationSection["enabled"] = true;

        serverManager.CommitChanges();
      }
   }
}

VB.NET

Imports System
Imports System.Text
Imports Microsoft.Web.Administration

Module Sample
   Sub Main()
      Dim serverManager As ServerManager = New ServerManager
      Dim config As Configuration = serverManager.GetApplicationHostConfiguration

      Dim digestAuthenticationSection As ConfigurationSection = config.GetSection("system.webServer/security/authentication/digestAuthentication", "Contoso")
      digestAuthenticationSection("enabled") = True

      serverManager.CommitChanges()
   End Sub
End Module

JavaScript

var adminManager = new ActiveXObject('Microsoft.ApplicationHost.WritableAdminManager');
adminManager.CommitPath = "MACHINE/WEBROOT/APPHOST";

var digestAuthenticationSection = adminManager.GetAdminSection("system.webServer/security/authentication/digestAuthentication", "MACHINE/WEBROOT/APPHOST/Contoso");
digestAuthenticationSection.Properties.Item("enabled").Value = true;

adminManager.CommitChanges();

VBScript

Set adminManager = CreateObject("Microsoft.ApplicationHost.WritableAdminManager")
adminManager.CommitPath = "MACHINE/WEBROOT/APPHOST"

Set digestAuthenticationSection = adminManager.GetAdminSection("system.webServer/security/authentication/digestAuthentication", "MACHINE/WEBROOT/APPHOST/Contoso")
digestAuthenticationSection.Properties.Item("enabled").Value = True

adminManager.CommitChanges()