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
- Sulla barra delle applicazioni fare clic su Server Manager.
- In Server Manager fare clic sul menu Gestisci e quindi su Aggiungi ruoli e funzionalità.
- 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.
- Nella pagina Ruoli server espandere Server Web (IIS), server Web, serverWeb, sicurezzae quindi selezionare Autenticazione digest. Fare clic su Avanti.
. - Nella pagina Selezione funzionalità fare clic su Avanti.
- Nella pagina Conferma selezioni per l'installazione fare clic su Installa.
- Nella pagina Risultati fare clic su Chiudi.
Windows 8 o Windows 8.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.
- In Pannello di controllo fare clic su Programmi e funzionalità e quindi su Attiva o disattiva funzionalità di Windows.
- Espandere Internet Information Services, servizi Web a livello globale, sicurezza, quindi selezionare Autenticazione digest.
- Fare clic su OK.
- Fare clic su Close.
Windows Server 2008 o Windows Server 2008 R2
- Sulla barra delle applicazioni fare clic su Start, scegliere Strumenti di amministrazione, quindi fare clic su Server Manager.
- Nel riquadro della gerarchia Server Manager espandere Ruoli, quindi fare clic su Server Web (IIS).
- Nel riquadro Server Web (IIS) scorrere fino alla sezione Servizi ruolo e quindi fare clic su Aggiungi servizi ruolo.
- Nella pagina Selezione servizi ruolo della Procedura guidata Aggiungi servizi ruolo selezionare Autenticazione digest e quindi fare clic su Avanti.
- Nella pagina Conferma selezioni per l'installazione fare clic su Installa.
- Nella pagina Risultati fare clic su Chiudi.
Windows Vista o Windows 7
- Sulla barra delle applicazioni fare clic su Start e quindi su Pannello di controllo.
- In Pannello di controllo fare clic su Programmi e funzionalità e quindi su Attiva o disattiva funzionalità di Windows.
- Espandere Internet Information Services, servizi Web globale, sicurezza, selezionare Autenticazione digest e quindi fare clic su OK.
Procedure
Come abilitare l'autenticazione digest e disabilitare l'autenticazione anonima
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).
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.
Scorrere fino alla sezione Sicurezza nel riquadro Home e quindi fare doppio clic su Autenticazione.
Nel riquadro Autenticazione selezionare Autenticazione digest e quindi nel riquadro Azioni fare clic su Abilita.
Nel riquadro Autenticazione selezionare Autenticazione anonima e quindi fare clic su Disabilita nel riquadro Azioni .
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()