Autorizzazione di autorizzazione <di sicurezza>

Panoramica

L'elemento <authorization> consente di configurare gli account utente che possono accedere al sito o all'applicazione. Usare l'autorizzazione in combinazione con l'autenticazione per proteggere l'accesso al contenuto nel server. L'autenticazione conferma l'identità di un utente, mentre l'autorizzazione determina le risorse che gli utenti possono o non possono accedere.

IIS definisce due tipi di regole di autorizzazione, Consenti regole e Regole nega:

  • Consenti regole 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 negano 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.

Compatibilità

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

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 Server Web, espandere Sicurezza e quindi selezionare Autorizzazione URL. Fare clic su Avanti.
    Immagine del riquadro Server Web e Sicurezza espansa con L autorizzazione U R L evidenziata. . - 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 nell'angolo inferiore sinistro, fare clic con il pulsante destro del mouse sul pulsante Start e quindi fare clic 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, espandere Servizi Web a livello mondiale, espandere Sicurezza e quindi selezionare Autorizzazione URL.
    Immagine del riquadro Servizi Web a livello mondiale e sicurezza espansa e autorizzazione R L selezionata.- Fare clic su OK.
  2. Fare clic su Close.

Windows Server 2008 o Windows Server 2008 R2

  1. Nella barra delle applicazioni fare clic su Start, scegliere Strumenti di amministrazione e 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 Seleziona servizi ruolo della Procedura guidata Aggiungi servizi ruolo selezionare Autorizzazione URL e quindi fare clic su Avanti.
    Screenshot del riquadro Sicurezza espanso nella pagina Seleziona servizi ruolo della Procedura guidata Aggiungi servizi ruolo con L autorizzazione U R L selezionata.- Nella pagina Conferma selezioni di installazione fare clic su Installa. - Nella pagina Risultati fare clic su Chiudi.

Windows Vista o Windows 7

  1. Nella barra delle applicazioni fare clic su Start e quindi fare clic su Pannello di controllo. - In Pannello di controllo fare clic su Programmi e funzionalità e quindi fare clic su Attiva o disattiva funzionalità di Windows. - Espandere Internet Information Services, quindi selezionare Autorizzazione URL e quindi fare clic su OK.
    Immagine del riquadro Internet Information Services espansa e autorizzazione R L selezionata.

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:

      • 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 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.
    Immagine del riquadro Home con regole di autorizzazione evidenziate.

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

  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 Allow per tutti gli utenti per verbi HTTP specifici:
      Immagine dell'aggiunta di una regola Consenti per tutti gli utenti per verbi H T T P specifici che mostrano i verbi digitati nella casella Applica questa regola a verbi specifici.

    • Esempio #2: Aggiunta di una regola Deny per un utente specifico per tutti i verbi HTTP:
      Immagine della finestra di dialogo per Aggiungere regola di autorizzazione nega per un utente specifico per tutti i verbi H T T P.

      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 consenti e Aggiungi regola di autorizzazione nega .

Configurazione

È possibile configurare l'elemento <authorization> a livello di server nel file ApplicationHost.config oppure a livello di sito o applicazione nel file di Web.config appropriato.

È possibile impostare regole di autorizzazione predefinite per l'intero server configurando le regole di autorizzazione a livello di server. È possibile rimuovere, cancellare o eseguire l'override di queste regole configurando regole più specifiche per i siti o le applicazioni.

Attributi

Attributo Descrizione
bypassLoginPages Attributo booleano facoltativo.

Specifica se ignorare la verifica dell'autorizzazione per la pagina specificata come pagina di accesso per l'autenticazione di Forms. Ciò consente agli utenti non autenticati di accedere alla pagina di accesso per accedere.

Il valore predefinito è true.

Elementi figlio

Elemento Descrizione
add Elemento facoltativo.

Aggiunge una regola di autorizzazione alla raccolta di regole di autorizzazione.
remove Elemento facoltativo.

Rimuove un riferimento a una regola di autorizzazione per la raccolta di regole di autorizzazione.
clear Elemento facoltativo.

Rimuove tutti i riferimenti alle regole di autorizzazione dalla raccolta di regole di autorizzazione.

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()