Utilizzo dell'autenticazione IIS con la rappresentazione ASP.NET
Aggiornamento: novembre 2007
In IIS (Internet Information Services) sono disponibili diversi schemi di autenticazione che è possibile utilizzare per garantire la sicurezza di un'applicazione Web. Gli scenari più comuni includono l'autenticazione integrata di Windows (NTLM) all'interno di una rete Intranet aziendale allo scopo di determinare l'identità degli utenti dell'applicazione in base all'accesso a Windows o la specifica di una sola identità anonima per una determinata applicazione. L'identità di Windows fornita da IIS può quindi essere utilizzata per stabilire se l'applicazione Web dispone dell'accesso a una risorsa di Windows protetta, ad esempio un file protetto, mediante un elenco di controllo di accesso (ACL, Access Control List) o una risorsa di rete quale un file o un server di database. È possibile configurare ASP.NET affinché utilizzi l'identità di Windows fornita da IIS mediante la rappresentazione.
Per impostazione predefinita, ASP.NET è configurato per l'utilizzo della modalità di autenticazione Windows, che applica l'identità di Windows fornita da IIS alla proprietà User dell'oggetto HttpContext corrente. Questo consente di determinare l'identità fornita da IIS tramite la proprietà User (quando si utilizza l'identificazione anonima, il Name dell'utente non è specificato), ma non di utilizzare tale identità come WindowsIdentity per la pagina corrente. La classe WindowsIdentity di un'applicazione viene utilizzata per stabilire se tale applicazione può accedere a un file o a una risorsa di rete specifica.
Per configurare ASP.NET affinché possa rappresentare l'identità di Windows fornita da IIS come WindowsIdentity per l'applicazione ASP.NET, modificare il file Web.config e impostare l'attributo impersonate dell'elemento di configurazione identity su true, come illustrato nell'esempio riportato di seguito.
<configuration>
<system.web>
<identity impersonate="true" />
</system.web>
</configuration>
La rappresentazione è indipendente dall'impostazione mode dell'autenticazione configurata utilizzando l'elemento di configurazione authentication. L'elemento authentication viene utilizzato per determinare la proprietà User dell'oggetto HttpContext corrente. La rappresentazione viene utilizzata per determinare la WindowsIdentity dell'applicazione ASP.NET.
Di seguito viene illustrato come attivare la rappresentazione utilizzando come esempio lo scenario di una rete Intranet. In tale scenario verrà creato un sito Web aziendale interno per l'invio di informazioni sui dipendenti. Alcune di queste informazioni sono riservate ai responsabili. Le informazioni riservate ai responsabili possono essere inviate in una sottodirectory del sito in cui sono contenute le informazioni sui dipendenti, in modo da poterne limitare l'accesso. In IIS l'identità dell'utente viene determinata dall'utilizzo della sicurezza integrata di Windows (NTLM). In questo scenario si presuppone che:
Nel server Web sia installato Microsoft Windows NT Server, Windows 2000 Server o Windows Server 2003.
Nel server Web sia installato IIS 6.0.
Il disco rigido del server Web sia formattato utilizzando il file system NTFS.
Tutti i dipendenti che devono accedere alle risorse limitate utilizzino Windows.
In qualità di amministratore dell'applicazione all'interno di questo scenario, è necessario eseguire le operazioni seguenti:
Creare i file e le directory mostrati nell'illustrazione riportata di seguito:
Creare un gruppo Windows denominato Manager che contenga tutti gli utenti che devono disporre dell'accesso al file ManagerInfo.aspx.
Utilizzare Gestione Internet Information Services (IIS) per disattivare l'autenticazione anonima per l'applicazione e attivare l'autenticazione integrata di Windows.
Nel file Web.config dell'applicazione impostare l'attributo impersonate dell'elemento identity su true.
Impostare l'elenco di controllo di accesso NTFS relativo alla directory ManagerInformation in modo da consentire l'accesso solo alle identità comprese nel gruppo Manager di Windows e agli altri account di sistema richiesti. È necessario includere l'identità del processo ASP.NET. L'identità del processo ASP.NET per Windows 2000 Server o Windows NT è l'account ASPNET locale. L'identità del processo ASP.NET per Windows Server 2003 e versioni successive è l'identità del pool di applicazioni IIS, che per impostazione predefinita è l'account NETWORK SERVICE.
Nota: La funzionalità di gestione dei ruoli di ASP.NET offre un metodo alternativo di limitare l'accesso ad aree dell'applicazione Web. Per ulteriori informazioni, vedere Gestione delle autorizzazioni tramite ruoli.
Vedere anche
Concetti
Suggerimenti di base sulla protezione delle applicazioni Web