Questa è un'ottima domanda 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 le identità elencate:
IIS_IUSRS:
Questo è analogo al vecchio IIS_WPG
gruppo IIS6 . È un gruppo integrato con la sicurezza configurata in modo tale che qualsiasi membro di questo gruppo possa fungere da identità del pool di applicazioni.
IUSR:
Questo account è analogo al vecchio IUSR_<MACHINE_NAME>
account locale che era l'utente anonimo predefinito per i siti Web IIS5 e IIS6 (ovvero quello configurato tramite la scheda Protezione directory delle proprietà di un sito).
Per ulteriori informazioni IIS_IUSRS
e IUSR
vedere:
Comprensione degli account utente e di gruppo incorporati in IIS 7
DefaultAppPool:
Se un pool di applicazioni è configurato per essere eseguito utilizzando la funzionalità Identità pool di applicazioni, IIS AppPool\<pool name>
verrà creato al volo un account "sintetizzato" che verrà utilizzato come identità del pool. In questo caso ci sarà un account sintetizzato chiamato IIS AppPool\DefaultAppPool
creato per la durata del pool. Se si elimina il pool, questo account non esisterà più. Quando si applicano autorizzazioni a file e cartelle, è necessario aggiungerli utilizzando IIS AppPool\<pool name>
. Inoltre, non vedrai questi account di pool nella Gestione utenti del tuo computer. Vedere di seguito per ulteriori informazioni:
Identità del pool di applicazioni
ASP.NET v4.0:
-
Questa sarà l'identità del pool di applicazioni per il pool di applicazioni ASP.NET v4.0. Vedi DefaultAppPool
sopra
NETWORK SERVICE:
-
L' NETWORK SERVICE
account è un'identità integrata introdotta su Windows 2003. NETWORK SERVICE
è un account con privilegi limitati con cui è possibile eseguire 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 prima di Windows 2008 è possibile che ASP.NET esegua le richieste con l'account Pool di applicazioni (in genere NETWORK SERVICE
). In alternativa, è possibile configurare ASP.NET per impersonare l'account anonimo del sito tramite l' <identity impersonate="true" />
impostazione nel web.config
file localmente (se tale impostazione è bloccata, dovrebbe essere eseguita da un amministratore nel machine.config
file).
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à parziali per impedire il riavvolgimento dell'account rappresentato).
In IIS7.x / ASP.NET il controllo della rappresentazione è ora configurato tramite la funzionalità di configurazione Autenticazione di un sito. Quindi è possibile configurare l'esecuzione come identità del pool IUSR
o un account anonimo personalizzato specifico.
LOCAL SERVICE:
L' LOCAL SERVICE
account è un account integrato utilizzato dal gestore controllo servizi. Ha un set minimo di privilegi sul computer locale. Ha un ambito di utilizzo abbastanza limitato:
Account LocalService
LOCAL SYSTEM:
Non hai chiesto questo, ma sto aggiungendo completezza. Questo è un account integrato locale. Ha privilegi e fiducia piuttosto ampi. Non configurare mai un sito Web o un pool di applicazioni per l'esecuzione con questa identità.
Account del sistema locale
In pratica:
In pratica, l'approccio preferito alla protezione di un sito Web (se il sito ottiene il proprio pool di applicazioni, che è l'impostazione predefinita per un nuovo sito nella MMC di IIS7) deve essere eseguito in Application Pool Identity
. Questo significa impostare l'identità del sito nelle impostazioni avanzate del suo pool di applicazioni su Application Pool Identity
:
Nel sito Web è quindi necessario configurare la funzione di autenticazione:
Fare clic con il tasto destro e modificare la voce di autenticazione anonima:
Assicurati che "Identità pool di applicazioni" sia selezionata:
Quando si applicano le autorizzazioni per file e cartelle, si concede all'identità del pool di applicazioni tutti i diritti richiesti. Ad esempio, se si sta concedendo l'identità del pool di applicazioni per le ASP.NET v4.0
autorizzazioni del pool, è possibile farlo tramite Explorer:
Fai clic sul pulsante "Controlla nomi":
Oppure puoi farlo usando l' ICACLS.EXE
utilità:
icacls c: \ wwwroot \ mysite / grant "IIS AppPool \ ASP.NET v4.0" :( CI) (OI) (M)
... o ... se viene chiamato il pool di applicazioni del tuo sito, BobsCatPicBlog
allora:
icacls c: \ wwwroot \ mysite / grant "IIS AppPool \ BobsCatPicBlog" :( CI) (OI) (M)
Spero che questo aiuti a chiarire le cose.
Aggiornare:
Ho appena incontrato questa eccellente risposta del 2009 che contiene un sacco di informazioni utili, vale la pena leggere:
La differenza tra l'account "Sistema locale" e l'account "Servizio di rete"?