Autenticazione di <sicurezza>

Panoramica

L'autenticazione è il meccanismo usato per verificare l'identità dei visitatori del sito Web o dell'applicazione Web. In genere, si esegue questa operazione assegnando un nome utente e una password a un visitatore o consentendo a un visitatore di accedere in modo anonimo ai contenuti pubblici nel sito.

Anche se si usa l'autenticazione per confermare l'identità di un visitatore, si usa l'autorizzazione per controllare l'accesso del visitatore alle diverse aree del sito o dell'applicazione.

IIS 7 supporta l'autenticazione anonima, l'autenticazione di base, l'autenticazione del mapping dei certificati client, l'autenticazione digest, l'autenticazione del mapping dei certificati client IIS e autenticazione di Windows. Le modalità di autenticazione aggiuntive possono essere fornite da moduli di autenticazione di terze parti.

Dopo aver installato uno dei moduli di autenticazione, è necessario abilitare il modulo di autenticazione selezionato per il sito Web, l'applicazione Web o il servizio Web in cui si vuole usarlo.

Per impostazione predefinita, IIS 7 abilita anche l'autenticazione in modalità kernel per Windows (che usa Kerberos o NTLM), schema di autenticazione. L'autenticazione in modalità kernel offre i vantaggi seguenti:

  • Le applicazioni Web possono essere eseguite usando account con privilegi inferiori.
  • Se si usa l'autenticazione Kerberos, è possibile usare un account diverso dall'account predefinito associato al nome dell'entità servizio (SPN) del server.
  • Se si usa l'autenticazione in modalità kernel, è possibile usare il provider Kerberos autenticazione di Windows senza eseguire una configurazione SPN esplicita.

Compatibilità

Versione Note
IIS 10.0 L'elemento <authentication> non è stato modificato in IIS 10.0.
IIS 8,5 L'elemento <authentication> non è stato modificato in IIS 8.5.
IIS 8,0 L'elemento <authentication> non è stato modificato in IIS 8.0.
IIS 7,5 L'elemento <authentication> non è stato modificato in IIS 7.5.
IIS 7.0 L'elemento <authentication> è stato introdotto in IIS 7.0.
IIS 6.0 N/D

Installazione

L'elemento <authentication> è incluso nell'installazione predefinita di IIS 7.

Procedure

Come 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 e passare al livello nel riquadro della gerarchia che si vuole configurare, quindi fare clic sul sito Web o sull'applicazione Web.

  3. Scorrere fino alla sezione Sicurezza nel riquadro Home e quindi fare doppio clic su Autenticazione.

  4. Nel riquadro Autenticazione selezionare Autenticazione anonima e quindi fare clic su Disabilita nel riquadro Azioni .
    Screenshot che mostra il riquadro Autenticazione. L'autenticazione anonima è abilitata e selezionata.

Come modificare le credenziali di autenticazione anonima dall'account IUSR

  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 e passare al livello nel riquadro della gerarchia che si vuole configurare, quindi fare clic sul sito Web o sull'applicazione Web.

  3. Scorrere fino alla sezione Sicurezza nel riquadro Home e quindi fare doppio clic su Autenticazione.

  4. Nel riquadro Autenticazione selezionare Autenticazione anonima e quindi fare clic su Modifica nel riquadro Azioni .

  5. Nella finestra di dialogo Modifica credenziali di autenticazione anonima eseguire una delle operazioni seguenti:

    • Selezionare Identità pool di applicazioni per usare il set di identità per il pool di applicazioni e quindi fare clic su OK.
      Screenshot che mostra la finestra di dialogo Modifica credenziali di autenticazione anonima. L'identità del pool di applicazioni è selezionata.

    • Fare clic su Imposta, quindi nella finestra di dialogo Imposta credenziali immettere il nome utente per l'account nella casella Nome utente , immettere la password per l'account nelle caselle Password e Conferma password , fare clic su OK e quindi fare di nuovo clic su OK .
      Screenshot che mostra la finestra di dialogo Imposta credenziali.

      Nota

      Se si utilizza questa procedura, concedere solo i privilegi minimi del nuovo account nel computer server IIS.


Come abilitare autenticazione di Windows per un sito Web, un'applicazione Web o un servizio Web

  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 e quindi il sito, l'applicazione o il servizio Web per cui si desidera abilitare autenticazione di Windows.

  3. Scorrere fino alla sezione Sicurezza nel riquadro Home e quindi fare doppio clic su Autenticazione.

  4. Nel riquadro Autenticazione selezionare Autenticazione di Windows e quindi fare clic su Abilita nel riquadro Azioni .
    Screenshot che mostra il riquadro Autenticazione. Autenticazione di Windows è disabilitata e selezionata.

Configurazione

Il <authentication> gruppo di sezioni è definito nella <system.webServer> sezione di configurazione. Questo gruppo di sezioni definisce le sezioni di configurazione per tutti i tipi di autenticazione utente che è possibile installare e abilitare nel server. È possibile configurarlo a livello di server nel file ApplicationHost.config e a livello di applicazione nel file Web.config.

Attributi

Nessuno.

Elementi figlio

Elemento Descrizione
anonymousAuthentication Elemento facoltativo.

Specifica le impostazioni per l'autenticazione anonima.
basicAuthentication Elemento facoltativo.

Specifica le impostazioni per l'autenticazione di base.
clientCertificateMappingAuthentication Elemento facoltativo.

Specifica l'autenticazione del mapping dei certificati client con Active Directory.
digestAuthentication Elemento facoltativo.

Specifica le impostazioni per l'autenticazione digest.
iisClientCertificateMappingAuthentication Elemento facoltativo.

Specifica l'autenticazione del mapping dei certificati client con IIS.
windowsAuthentication Elemento facoltativo.

Specifica le impostazioni per autenticazione di Windows.

Esempio di configurazione

L'esempio di configurazione seguente disabilita l'autenticazione anonima per un sito denominato Contoso, quindi abilita l'autenticazione di base e autenticazione di Windows per il sito.

<location path="Contoso">
   <system.webServer>
      <security>
         <authentication>
            <anonymousAuthentication enabled="false" />
            <basicAuthentication enabled="true" defaultLogonDomain="Contoso" />
            <windowsAuthentication enabled="true" />
          </authentication>
      </security>
   </system.webServer>
</location>

Codice di esempio

Gli esempi seguenti disabilitano l'autenticazione anonima per un sito denominato Contoso, quindi abilitare l'autenticazione di base e autenticazione di Windows per il sito.

AppCmd.exe

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

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

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

Nota

È necessario assicurarsi di impostare il parametro commit su apphost quando si usa AppCmd.exe per configurare queste impostazioni. Questa operazione esegue il commit delle impostazioni di configurazione nella sezione percorso appropriata nel file di 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 anonymousAuthenticationSection = config.GetSection("system.webServer/security/authentication/anonymousAuthentication", "Contoso");
         anonymousAuthenticationSection["enabled"] = false;

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

         ConfigurationSection windowsAuthenticationSection = config.GetSection("system.webServer/security/authentication/windowsAuthentication", "Contoso");
         windowsAuthenticationSection["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 anonymousAuthenticationSection As ConfigurationSection = config.GetSection("system.webServer/security/authentication/anonymousAuthentication", "Contoso")
      anonymousAuthenticationSection("enabled") = False

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

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

      serverManager.CommitChanges()
   End Sub
End Module

JavaScript

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

var anonymousAuthenticationSection = adminManager.GetAdminSection("system.webServer/security/authentication/anonymousAuthentication", "MACHINE/WEBROOT/APPHOST/Contoso");
anonymousAuthenticationSection.Properties.Item("enabled").Value = false;

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

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

adminManager.CommitChanges();

VBScript

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

Set anonymousAuthenticationSection = adminManager.GetAdminSection("system.webServer/security/authentication/anonymousAuthentication", "MACHINE/WEBROOT/APPHOST/Contoso")
anonymousAuthenticationSection.Properties.Item("enabled").Value = False

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

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

adminManager.CommitChanges()