Dies ist eine sehr gute Frage, und leider stellen viele Entwickler nicht genügend Fragen zur IIS / ASP.NET-Sicherheit, wenn sie Webentwickler sind und IIS einrichten. Also los geht's ....
So decken Sie die aufgeführten Identitäten ab:
IIS_IUSRS:
Dies ist analog zur alten IIS6- IIS_WPG
Gruppe. Es handelt sich um eine integrierte Gruppe, deren Sicherheit so konfiguriert ist, dass jedes Mitglied dieser Gruppe als Anwendungspoolidentität fungieren kann.
IUSR:
Dieses Konto entspricht dem alten IUSR_<MACHINE_NAME>
lokalen Konto, das der standardmäßige anonyme Benutzer für IIS5- und IIS6-Websites war (dh das Konto, das über die Registerkarte Verzeichnissicherheit der Eigenschaften einer Site konfiguriert wurde).
Weitere Informationen zu IIS_IUSRS
und IUSR
siehe:
Grundlegendes zu integrierten Benutzer- und Gruppenkonten in IIS 7
DefaultAppPool:
Wenn ein Anwendungspool für die Ausführung mit der Funktion "Anwendungspoolidentität" konfiguriert ist, wird im laufenden Betrieb ein "synthetisiertes" Konto IIS AppPool\<pool name>
erstellt, das als Poolidentität verwendet wird. In diesem Fall wird ein synthetisiertes Konto IIS AppPool\DefaultAppPool
erstellt, das für die Lebensdauer des Pools erstellt wird. Wenn Sie den Pool löschen, ist dieses Konto nicht mehr vorhanden. Wenn Sie Berechtigungen auf Dateien und Ordner anwenden, müssen diese mit hinzugefügt werden IIS AppPool\<pool name>
. Sie sehen diese Poolkonten auch nicht im Benutzermanager Ihres Computers. Weitere Informationen finden Sie im Folgenden:
Anwendungspoolidentitäten
ASP.NET v4.0:
- -
Dies ist die Anwendungspoolidentität für den ASP.NET v4.0-Anwendungspool. Siehe DefaultAppPool
oben.
NETWORK SERVICE:
- -
Das NETWORK SERVICE
Konto ist eine in Windows 2003 eingeführte integrierte Identität. Es NETWORK SERVICE
handelt sich um ein Konto mit geringen Berechtigungen, unter dem Sie Ihre Anwendungspools und Websites ausführen können. Eine Website, die in einem Windows 2003-Pool ausgeführt wird, kann sich weiterhin als anonymes Konto der Website ausgeben (IUSR_ oder was auch immer Sie als anonyme Identität konfiguriert haben).
In ASP.NET vor Windows 2008 konnte ASP.NET (normalerweise NETWORK SERVICE
) Anforderungen unter dem Anwendungspoolkonto ausführen . Alternativ können Sie ASP.NET so konfigurieren, dass es sich über die <identity impersonate="true" />
Einstellung in der web.config
Datei lokal als anonymes Konto der Site ausgibt (wenn diese Einstellung gesperrt ist, muss dies von einem Administrator in der machine.config
Datei vorgenommen werden).
Die Einstellung <identity impersonate="true">
ist in gemeinsam genutzten Hosting-Umgebungen üblich, in denen gemeinsam genutzte Anwendungspools verwendet werden (in Verbindung mit teilweisen Vertrauenseinstellungen, um das Auflösen des imitierten Kontos zu verhindern).
In IIS7.x / ASP.NET wird die Identitätswechselsteuerung jetzt über die Authentifizierungskonfigurationsfunktion einer Site konfiguriert. Sie können also konfigurieren, dass es als Poolidentität IUSR
oder als ein bestimmtes benutzerdefiniertes anonymes Konto ausgeführt wird.
LOCAL SERVICE:
Das LOCAL SERVICE
Konto ist ein integriertes Konto, das vom Service Control Manager verwendet wird. Es verfügt über Mindestrechte auf dem lokalen Computer. Es hat einen ziemlich begrenzten Anwendungsbereich:
LocalService-Konto
LOCAL SYSTEM:
Sie haben nicht danach gefragt, aber ich füge der Vollständigkeit halber hinzu. Dies ist ein lokal integriertes Konto. Es hat ziemlich umfangreiche Privilegien und Vertrauen. Sie sollten niemals eine Website oder einen Anwendungspool so konfigurieren, dass sie unter dieser Identität ausgeführt werden.
LocalSystem-Konto
In der Praxis:
In der Praxis wird der bevorzugte Ansatz zum Sichern einer Website (wenn die Site über einen eigenen Anwendungspool verfügt - dies ist die Standardeinstellung für eine neue Site in der MMC von IIS7) darin ausgeführt Application Pool Identity
. Dies bedeutet, dass die Identität der Site in den erweiterten Einstellungen des Anwendungspools auf Folgendes festgelegt wird Application Pool Identity
:
Auf der Website sollten Sie dann die Authentifizierungsfunktion konfigurieren:
Klicken Sie mit der rechten Maustaste und bearbeiten Sie den Eintrag Anonyme Authentifizierung:
Stellen Sie sicher, dass "Anwendungspoolidentität" ausgewählt ist:
Wenn Sie Datei- und Ordnerberechtigungen anwenden, erteilen Sie der Anwendungspoolidentität alle erforderlichen Rechte. Wenn Sie beispielsweise die Identität des Anwendungspools für die ASP.NET v4.0
Poolberechtigungen erteilen, können Sie dies entweder über den Explorer tun:
Klicken Sie auf die Schaltfläche "Namen überprüfen":
Oder Sie können dies mit dem ICACLS.EXE
Dienstprogramm tun :
icacls c: \ wwwroot \ mysite / grant "IIS AppPool \ ASP.NET v4.0" :( CI) (OI) (M)
... oder ... wenn der Anwendungspool Ihrer Site aufgerufen wird, BobsCatPicBlog
dann:
icacls c: \ wwwroot \ mysite / grant "IIS AppPool \ BobsCatPicBlog" :( CI) (OI) (M)
Ich hoffe, das hilft, die Dinge zu klären.
Aktualisieren:
Ich bin gerade auf diese hervorragende Antwort aus dem Jahr 2009 gestoßen, die eine Reihe nützlicher Informationen enthält, die es wert sind, gelesen zu werden:
Der Unterschied zwischen dem Konto "Lokales System" und dem Konto "Netzwerkdienst"?