Condividi tramite


Autenticazione <anonima>

Panoramica

L'elemento <anonymousAuthentication> controlla il modo in cui Internet Information Services (IIS) 7 elabora le richieste dagli utenti anonimi. È possibile modificare l'elemento per disabilitare l'autenticazione <anonymousAuthentication> anonima oppure configurare Internet Information Services (IIS) per usare un account utente personalizzato per elaborare le richieste anonime.

L'autenticazione anonima consente agli utenti di accedere alle aree pubbliche del sito Web o FTP senza richiedere un nome utente o una password. Per impostazione predefinita, l'account IUSR, introdotto in IIS 7.0 e sostituisce l'account di IUSR_computername IIS 6.0, viene usato per consentire l'accesso anonimo. Un'applicazione è un raggruppamento di file che fornisce contenuto o fornisce servizi tramite protocolli, ad esempio HTTP. Quando si crea un'applicazione in IIS, il percorso dell'applicazione diventa parte dell'URL del sito.

Per impostazione predefinita, IIS 7 usa l'autenticazione anonima. È necessario disabilitare l'autenticazione anonima per qualsiasi sito Web, applicazione Web o servizio Web per cui si desidera abilitare altri metodi di autenticazione, ad esempio Basic o autenticazione di Windows.

Compatibilità

Versione Note
IIS 10.0 L'elemento <anonymousAuthentication> non è stato modificato in IIS 10.0.
IIS 8,5 L'elemento <anonymousAuthentication> non è stato modificato in IIS 8.5.
IIS 8,0 L'elemento <anonymousAuthentication> non è stato modificato in IIS 8.0.
IIS 7,5 L'elemento <anonymousAuthentication> non è stato modificato in IIS 7.5.
IIS 7.0 L'elemento <anonymousAuthentication> è stato introdotto in IIS 7.0.
IIS 6.0 L'elemento <anonymousAuthentication> sostituisce le proprietà metabase di IIS 6.0 AuthFlags, AnonymousUserName e AnonymousUserPassword.

Installazione

L'elemento <anonymousAuthentication> è 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:

      • Nella barra delle applicazioni fare clic su Server Manager, scegliere Strumenti e 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 e quindi fare doppio clic su Gestione Internet Information Services (IIS).
    • Se si usa Windows Server 2008 o Windows Server 2008 R2:

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

      • Nella barra delle applicazioni fare clic su Start e quindi fare clic su Pannello di controllo.
      • Fare doppio clic su Strumenti di amministrazione e 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 gerarchia da configurare e 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 del riquadro Autenticazione con autenticazione anonima 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:

      • Nella barra delle applicazioni fare clic su Server Manager, scegliere Strumenti e 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 e quindi fare doppio clic su Gestione Internet Information Services (IIS).
    • Se si usa Windows Server 2008 o Windows Server 2008 R2:

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

      • Nella barra delle applicazioni fare clic su Start e quindi fare clic su Pannello di controllo.
      • Fare doppio clic su Strumenti di amministrazione e 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 gerarchia da configurare e 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à del pool di applicazioni per usare il set di identità per il pool di applicazioni e quindi fare clic su OK.
      Screenshot dell'impostazione dell'identità utente anonima sull'identità del pool di applicazioni.

    • Fare clic su Imposta... e 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 di una finestra di dialogo Imposta credenziali vuota.

      Nota

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

Configurazione

L'elemento <anonymousAuthentication> è configurabile a livello di sito e applicazione nel file di Web.config.

Attributi

Attributo Descrizione
enabled Attributo booleano facoltativo.

Specifica se l'autenticazione anonima è abilitata.

Il valore predefinito è true.
logonMethod Attributo enumerazione facoltativo.

L'attributo logonMethod può essere uno dei valori possibili seguenti. Il valore predefinito è ClearText.
Valore Descrizione
Batch Questo tipo di accesso è destinato ai server batch, in cui i processi possono essere eseguiti per conto di un utente senza l'intervento diretto dell'utente.

Il valore numerico è 1.
ClearText Questo tipo di accesso mantiene il nome e la password nel pacchetto di autenticazione, che consente al server di effettuare connessioni ad altri server di rete durante la rappresentazione del client.

Il valore numerico è 3.
Interactive Questo tipo di accesso è destinato agli utenti che usano il computer in modo interattivo.

Il valore numerico è 0.
Network Questo tipo di accesso è destinato ai server ad alte prestazioni per autenticare le password di testo non crittografato. Le credenziali non vengono memorizzate nella cache per questo tipo di accesso.

Il valore numerico è 2.
password Attributo String facoltativo.

Specifica la password per l'autenticazione anonima.

Nota: Per evitare di archiviare stringhe password non crittografate nei file di configurazione, usare sempre AppCmd.exe o Gestione IIS per immettere le password. Se si usano questi strumenti di gestione, le stringhe password verranno crittografate automaticamente prima che vengano scritte nei file di configurazione XML. Ciò offre una migliore sicurezza delle password rispetto all'archiviazione di password non crittografate.
username Attributo String facoltativo.

Specifica il nome utente per l'autenticazione anonima. Se si lascia vuoto questo valore, ovvero username="", l'autenticazione anonima usa l'identità del pool di applicazioni per autenticare gli utenti anonimi.

Il valore predefinito è IUSR.

Elementi figlio

Nessuno.

Esempio di configurazione

Nell'esempio di configurazione seguente viene configurata l'autenticazione anonima per un sito Web IIS 7 o un'applicazione Web per l'uso di un account locale nel server Web. IIS 7 usa automaticamente la crittografia AES per crittografare la password.

<security> <authentication>
   <anonymousAuthentication
      userName="User1"
      password="[enc:AesProvider:57686f6120447564652c2049495320526f636b73:enc]" />
   </authentication>
</security>

Codice di esempio

Gli esempi seguenti abilitano l'autenticazione anonima e modificano il nome utente e la password predefiniti usati per l'autenticazione anonima in un account denominato IUSR e una password di P@ssw0rd.

AppCmd.exe

appcmd.exe set config "Contoso" -section:system.webServer/security/authentication/anonymousAuthentication /enabled:"True" /commit:apphost
appcmd.exe set config "Contoso" -section:system.webServer/security/authentication/anonymousAuthentication /userName:"IUSR" /commit:apphost
appcmd.exe set config "Contoso" -section:system.webServer/security/authentication/anonymousAuthentication /password:"P@ssw0rd" /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 anonymousAuthenticationSection = config.GetSection("system.webServer/security/authentication/anonymousAuthentication", "Contoso");
         anonymousAuthenticationSection["enabled"] = true;
         anonymousAuthenticationSection["userName"] = @"IUSR";
         anonymousAuthenticationSection["password"] = @"P@ssw0rd";
         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") = True
      anonymousAuthenticationSection("userName") = "IUSR"
      anonymousAuthenticationSection("password") = "P@ssw0rd"
      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 = true;
anonymousAuthenticationSection.Properties.Item("userName").Value = "IUSR";
anonymousAuthenticationSection.Properties.Item("password").Value = "P@ssw0rd";

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 = True
anonymousAuthenticationSection.Properties.Item("userName").Value = "IUSR"
anonymousAuthenticationSection.Properties.Item("password").Value = "P@ssw0rd"

adminManager.CommitChanges()