Aggiunta dell'aggiunta dell'autorizzazione <di sicurezza>

Panoramica

L'elemento <add><authorization> della raccolta definisce una regola di autorizzazione che consentirà o negherà l'accesso a utenti, gruppi, utenti anonimi o a tutti gli utenti specificati.

L'attributo accessType specifica uno dei due tipi di regole di autorizzazione:

  • Le regole consenti consentono di definire gli account utente o i gruppi di utenti che possono accedere a un sito, a un'applicazione o a tutti i siti in un server.
  • Le regole di negazione consentono di definire gli account utente o i gruppi di utenti che non possono accedere a un sito, a un'applicazione o a tutti i siti in un server.

Le regole di autorizzazione possono essere destinate ulteriormente a un elenco di verbi HTTP e a utenti o gruppi specifici.

Compatibilità

Versione Note
IIS 10.0 L'elemento <add> non è stato modificato in IIS 10.0.
IIS 8,5 L'elemento <add> non è stato modificato in IIS 8.5.
IIS 8,0 L'elemento <add> non è stato modificato in IIS 8.0.
IIS 7,5 L'elemento <add> non è stato modificato in IIS 7.5.
IIS 7.0 L'elemento <add><authorization> della raccolta è stato introdotto in IIS 7.0.
IIS 6.0 La <authorization> raccolta sostituisce le proprietà AzEnable, AzStoreName, AzScopeName e AzImpersonationLevel di IIS 6.0.

Installazione

Per supportare e configurare l'autorizzazione per siti e applicazioni nel server Web, è necessario installare il modulo di autorizzazione URL. A tale scopo, seguire questa procedura.

Windows Server 2012 o Windows Server 2012 R2

  1. 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), espandere Server Web, espandere Sicurezza e quindi selezionare Autorizzazione URL. Fare clic su Avanti.
    Screenshot che mostra l'opzione U R L Authorization selezionata per Windows Server 2012. . - Nella pagina Seleziona funzionalità fare clic su Avanti. - Nella pagina Conferma selezioni di installazione fare clic su Installa. - 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. - In Pannello di controllo fare clic su Programmi e funzionalità, quindi fare clic su Attiva o disattiva funzionalità di Windows. - Espandere Internet Information Services, servizi Web globale, sicurezza e quindi selezionare Autorizzazione URL.
    Screenshot che mostra l'opzione U R L Authorization selezionata per Windows 8.- Fare clic su OK.
  2. 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. - Nel riquadro della gerarchia Server Manager espandere Ruoli e 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 Autorizzazione URL e quindi fare clic su Avanti.
    Screenshot che mostra l'opzione U R L Authorization selezionata per Windows Server 2008.- Nella pagina Conferma selezioni di installazione fare clic su Installa. - 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. - In Pannello di controllo fare clic su Programmi e funzionalità, quindi fare clic su Attiva o disattiva funzionalità di Windows. - Espandere Internet Information Services, quindi selezionare Autorizzazione URL e quindi fare clic su OK.
    Screenshot che mostra l'opzione U R L Authorization selezionata per Windows Vista o Windows 7.

Procedure

Come aggiungere una regola di autorizzazione

  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 passare al sito o all'applicazione in cui si vuole configurare l'autorizzazione.

  3. Nel riquadro Home fare doppio clic su Regole di autorizzazione.
    Screenshot che mostra il riquadro Home del sito Web predefinito con l'opzione Regole di autorizzazione selezionata.

  4. Per aggiungere una nuova regola di autorizzazione, nel riquadro Azioni fare clic su Aggiungi regola consenti ... o Aggiungi regola di rifiuto...

  5. Applicare le impostazioni di autorizzazione necessarie per il sito o l'applicazione e quindi fare clic su OK. Ad esempio:

    • Esempio 1: Aggiunta di una regola Consenti per tutti gli utenti per verbi HTTP specifici:
      Screenshot che mostra la finestra di dialogo Aggiungi regola di autorizzazione nega, con Applica questa regola a verbi specifici selezionati.

    • Esempio 2: Aggiunta di una regola di negazione per un utente specifico per tutti i verbi HTTP:
      Screenshot che mostra la finestra di dialogo Aggiungi regola di autorizzazione nega, con l'opzione Regole specificate selezionata.

      Nota

      Per modificare o eliminare una regola esistente, selezionare la regola nel riquadro Regole di autorizzazione e quindi fare clic su Modifica o Rimuovi nel riquadro Azioni . Se si fa clic su Modifica... , viene visualizzata una finestra di dialogo che consente di modificare la regola; questa finestra di dialogo è simile alla finestra di dialogo Aggiungi regola di autorizzazione consentita e Aggiungi regola di autorizzazione nega .

Configurazione

Attributi

Attributo Descrizione
accessType Attributo Enum obbligatorio.

L'attributo accessType può essere uno dei valori possibili seguenti.
Valore Descrizione
Allow Specifica una regola che consente l'autorizzazione.

Il valore numerico è 0.
Deny Specifica una regola che nega l'autorizzazione.

Il valore numerico è 1.
roles Attributo stringa facoltativo.

Specifica i ruoli per una regola di autorizzazione.
users Attributo stringa facoltativo.

Specifica gli utenti per una regola di autorizzazione. È possibile aggiungere più utenti in un elenco delimitato da virgole. Sono stati inoltre definiti gli identificatori speciali seguenti.
Valore Descrizione
* Specifica che la regola verrà applicata a tutti gli utenti.
? Specifica che la regola verrà applicata agli utenti anonimi.
verbs Attributo stringa facoltativo.

Specifica i verbi HTTP per una regola di autorizzazione.

Se questo valore viene lasciato vuoto o non viene specificato, la regola verrà applicata a tutti i verbi HTTP.

Elementi figlio

Nessuno.

Esempio di configurazione

Nell'esempio di configurazione seguente, se incluso in un file di Web.config, vengono rimosse le impostazioni di autorizzazione IIS predefinite, che consente a tutti gli utenti di accedere al sito Web o al contenuto dell'applicazione. Configura quindi una regola di autorizzazione che consente solo agli utenti con privilegi di amministratore di accedere al contenuto.

<configuration>
   <system.webServer>
      <security>
         <authorization>
            <remove users="*" roles="" verbs="" />
            <add accessType="Allow" users="" roles="Administrators" />
         </authorization>
      </security>
   </system.webServer>
</configuration>

Codice di esempio

Gli esempi seguenti aggiungono una regola di autorizzazione allow che consente agli utenti del gruppo administrators di accedere a un sito Web denominato Contoso.

AppCmd.exe

appcmd.exe set config "Contoso" -section:system.webServer/security/authorization /+"[accessType='Allow',roles='administrators']"

Nota

Facoltativamente, è possibile 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 anziché in un file di Web.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.GetWebConfiguration("Contoso");
         ConfigurationSection authorizationSection = config.GetSection("system.webServer/security/authorization");
         ConfigurationElementCollection authorizationCollection = authorizationSection.GetCollection();

         ConfigurationElement addElement = authorizationCollection.CreateElement("add");
         addElement["accessType"] = @"Allow";
         addElement["roles"] = @"administrators";
         authorizationCollection.Add(addElement);

         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.GetWebConfiguration("Contoso")
      Dim authorizationSection As ConfigurationSection = config.GetSection("system.webServer/security/authorization")
      Dim authorizationCollection As ConfigurationElementCollection = authorizationSection.GetCollection
      Dim addElement As ConfigurationElement = authorizationCollection.CreateElement("add")
      addElement("accessType") = "Allow"
      addElement("roles") = "administrators"
      authorizationCollection.Add(addElement)
      serverManager.CommitChanges()
   End Sub
End Module

JavaScript

var adminManager = new ActiveXObject('Microsoft.ApplicationHost.WritableAdminManager');
adminManager.CommitPath = "MACHINE/WEBROOT/APPHOST/Contoso";
var authorizationSection = adminManager.GetAdminSection("system.webServer/security/authorization", "MACHINE/WEBROOT/APPHOST/Contoso");
var authorizationCollection = authorizationSection.Collection;

var addElement = authorizationCollection.CreateNewElement("add");
addElement.Properties.Item("accessType").Value = "Allow";
addElement.Properties.Item("roles").Value = "administrators";
authorizationCollection.AddElement(addElement);

adminManager.CommitChanges();

VBScript

Set adminManager = CreateObject("Microsoft.ApplicationHost.WritableAdminManager")
adminManager.CommitPath = "MACHINE/WEBROOT/APPHOST/Contoso"
Set authorizationSection = adminManager.GetAdminSection("system.webServer/security/authorization", "MACHINE/WEBROOT/APPHOST/Contoso")
Set authorizationCollection = authorizationSection.Collection

Set addElement = authorizationCollection.CreateNewElement("add")
addElement.Properties.Item("accessType").Value = "Allow"
addElement.Properties.Item("roles").Value = "administrators"
authorizationCollection.AddElement(addElement)

adminManager.CommitChanges()