Questa è una domanda molto buona e purtroppo molti sviluppatori non fanno abbastanza domande sulla sicurezza IIS/ASP.NET nel contesto di essere uno sviluppatore web e configurare IIS. Quindi ecco qui ....
per coprire l'identità elencati:
IIS_IUSRS:
Questo è analogo al vecchio gruppo IIS6 IIS_WPG
. È un gruppo integrato con la sua sicurezza configurata in modo tale che qualsiasi membro di questo gruppo possa fungere da identità del pool di applicazioni.
IUSR:
Questo account è analoga alla vecchia IUSR_<MACHINE_NAME>
account locale che era l'utente anonimo predefinito per IIS 5 e IIS6 siti web (vale a dire quello configurato tramite la scheda Protezione directory di proprietà di un sito).
Per ulteriori informazioni su IIS_IUSRS
e IUSR
vedere:
Understanding Built-In User and Group Accounts in IIS 7
DefaultAppPool:
Se un pool di applicazioni è configurato per eseguire utilizzando il pool di applicazioni presentano poi una " sintetizzato "l'account chiamato IIS AppPool\<pool name>
verrà creato al volo per voi sed come l'identità della piscina. In questo caso ci sarà un account sintetizzato chiamato IIS AppPool\DefaultAppPool
creato per la durata della vita del pool. Se elimini il pool, questo account non esisterà più. Quando si applicano le autorizzazioni a file e cartelle, questi devono essere aggiunti utilizzando IIS AppPool\<pool name>
. Inoltre, questi account del pool non verranno visualizzati nel Gestore utenti del tuo computer. Vedere quanto segue per maggiori informazioni:
Application Pool Identities
ASP.NET v4.0:
-
Questo sarà l'Identità pool di applicazioni per il v4.0 ASP.NET pool di applicazioni. Vedi DefaultAppPool
sopra.
NETWORK SERVICE:
-
L'account NETWORK SERVICE
è un'identità integrata introdotta su Windows 2003. NETWORK SERVICE
è un account privilegiato basso in cui è possibile eseguire le pool di applicazioni e siti web. Un sito Web in esecuzione in un pool di Windows 2003 può ancora impersonare l'account anonimo del sito (IUSR_ o qualsiasi altra cosa configurata come identità anonima).
In ASP.NET precedente a Windows 2008 è possibile che ASP.NET esegua richieste nell'account Pool di applicazioni (in genere NETWORK SERVICE
). In alternativa, è possibile configurare ASP.NET per impersonare l'account anonimo del sito tramite l'impostazione <identity impersonate="true" />
nel file web.config
localmente (se tale impostazione è bloccata, è necessario che venga eseguita da un amministratore nel file machine.config
).
L'impostazione <identity impersonate="true">
è comune negli ambienti di hosting condiviso in cui vengono utilizzati pool di applicazioni condivisi (in combinazione con impostazioni di attendibilità parziale per impedire lo svolgimento dell'account rappresentato).
In IIS7.x/ASP.NET il controllo di rappresentazione è ora configurato tramite la funzione di configurazione di autenticazione di un sito. Quindi è possibile configurare l'esecuzione come identità del pool, IUSR
o un account anonimo personalizzato specifico.
LOCAL SERVICE:
L'account LOCAL SERVICE
è un account predefinito utilizzato dal gestore di controllo del servizio. Ha un minimo di privilegi sul computer locale. Ha una portata piuttosto limitata di utilizzo:
LocalService Account
LOCAL SYSTEM:
Lei non ha chiesto su questo, ma io sono l'aggiunta per completezza. Questo è un account integrato locale. Ha privilegi e fiducia piuttosto ampi. Non si dovrebbe mai configurare un sito Web o un pool di applicazioni da eseguire con questa identità.
LocalSystem Account
In pratica:
In pratica l'approccio preferito per garantire un sito web (se il sito prende il proprio pool di applicazioni - che è il default per un nuovo sito in MMC di IIS7) deve essere eseguito con Application Pool Identity
.Questo significa impostare l'identità del sito in Impostazioni avanzate del suo Application Pool a Application Pool Identity
:
Nel sito si dovrebbe quindi configurare la funzione di autenticazione:
clic destro e modificare l'Anonymous Voce di autenticazione:
.210
assicurare che "l'identità del pool di applicazioni" è selezionato:
Quando si arriva a applicare le autorizzazioni di file e cartelle che si accoglie la domanda identità del pool di qualunque sono necessari diritti. Per esempio, se l'utente garantisce l'identità del pool di applicazioni per i permessi piscina ASP.NET v4.0
allora è possibile farlo tramite Explorer:
Fare clic sul pulsante "Controlla nomi":
Oppure puoi farlo utilizzando l'utilità ICACLS.EXE
:
icacls c:\wwwroot\mysite /grant "IIS AppPool\ASP.NET v4.0":(CI)(OI)(M)
... o ... se pool di applicazioni vi sito si chiama BobsCatPicBlog
quindi:
icacls c:\wwwroot\mysite /grant "IIS AppPool\BobsCatPicBlog":(CI)(OI)(M)
Spero che questo aiuta a chiarire le cose.
Aggiornamento:
Ho appena imbattuto in questa risposta eccellente a partire dal 2009, che contiene una serie di informazioni utili, merita una lettura:
The difference between the 'Local System' account and the 'Network Service' account?
E l'utilizzo di Windows Server 2012 con ASP.NET 4.0 o superiore? – Kiquenet