2011-04-20 23 views
228

In Windows Server 2008 con installato ASP.NET 4.0, esiste un'intera serie di account utente correlati e non riesco a capire quale sia, in che modo differiscono e quale è VERAMENTE quello in cui viene eseguita la mia app . Ecco un elenco:Quali sono tutti gli account utente per IIS/ASP.NET e in che modo differiscono?

  • IIS_IUSRS
  • IUSR
  • DefaultAppPool
  • ASP.NET v4.0
  • NETWORK_SERVICE
  • LOCALE DI SERVIZIO.

Che cos'è?

+0

E l'utilizzo di Windows Server 2012 con ASP.NET 4.0 o superiore? – Kiquenet

risposta

366

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:

enter image description here

Nel sito si dovrebbe quindi configurare la funzione di autenticazione:

enter image description here

clic destro e modificare l'Anonymous Voce di autenticazione:

enter image description here

.210

assicurare che "l'identità del pool di applicazioni" è selezionato:

enter image description here

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:

enter image description here

Fare clic sul pulsante "Controlla nomi":

enter image description here

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?

+0

non sono d'accordo nell'utilizzare lo stesso utente per l'autenticazione anonima e l'identità del pool di app ... se è necessario fornire all'autorizzazione di scrittura in apodominio una cartella ... – giammin

+0

@ giammin - perché no? Se non si dispone di un caso speciale, l'utilizzo delle identità del pool di applicazioni è l'approccio più sicuro a condizione che ciascun sito si trovi nel proprio pool di applicazioni. Odio fare "appello all'autorità" ma sono stato un ingegnere di host web e un ragazzo di sicurezza per 15 anni, questo approccio è un gioco da ragazzi su IIS7 +. – Kev

+0

@Kev Semplicemente non mi piace dare il permesso di scrittura su un sito all'utente anonimo – giammin

Problemi correlati