To bardzo dobre pytanie i niestety wielu programistów nie zadaje wystarczających pytań na temat bezpieczeństwa IIS / ASP.NET w kontekście bycia programistą i konfigurowania IIS. No i proszę…
Aby objąć wymienione tożsamości:
IIS_IUSRS:
Jest to analogiczne do starej IIS_WPGgrupy IIS6 . Jest to grupa wbudowana ze skonfigurowanymi zabezpieczeniami, dzięki czemu każdy członek tej grupy może działać jako tożsamość puli aplikacji.
IUSR:
To konto jest analogiczne do starego IUSR_<MACHINE_NAME>konta lokalnego, które było domyślnym anonimowym użytkownikiem witryn IIS5 i IIS6 (tj. Skonfigurowanego za pomocą karty Zabezpieczenia katalogu we właściwościach witryny).
Aby uzyskać więcej informacji na temat IIS_IUSRSi IUSRzobacz:
Zrozumienie wbudowanych kont użytkowników i grup w IIS 7
DefaultAppPool:
Jeśli pula aplikacji jest skonfigurowana do uruchamiania przy użyciu funkcji Tożsamość puli aplikacji, wówczas „syntezowane” konto o nazwie IIS AppPool\<pool name>zostanie utworzone w locie w celu użycia jako tożsamość puli. W takim przypadku zostanie utworzone konto syntetyczne o nazwie IIS AppPool\DefaultAppPoolutworzone na czas istnienia puli. Jeśli usuniesz pulę, to konto przestanie istnieć. Przy stosowaniu uprawnień do plików i folderów należy je dodać za pomocą IIS AppPool\<pool name>. Nie zobaczysz również tych kont puli w Menedżerze użytkowników komputerów. Aby uzyskać więcej informacji, zobacz następujące informacje:
Tożsamości puli aplikacji
ASP.NET v4.0: -
Będzie to tożsamość puli aplikacji dla puli aplikacji ASP.NET v4.0. Patrz DefaultAppPoolwyżej
NETWORK SERVICE: -
NETWORK SERVICEKonto jest wbudowany tożsamości wprowadzonym w systemie Windows 2003.NETWORK SERVICE jest niska uprzywilejowane konto, na którym można uruchomić pul aplikacji i stron internetowych. Witryna działająca w puli systemu Windows 2003 może nadal podszywać się pod anonimowe konto witryny (IUSR_ lub cokolwiek skonfigurowanego jako anonimowa tożsamość).
W ASP.NET przed Windows 2008 możesz mieć ASP.NET wykonujący żądania w ramach konta w puli aplikacji (zwykle NETWORK SERVICE). Alternatywnie można skonfigurować program ASP.NET tak, aby personifikował anonimowe konto witryny za pomocą lokalnego <identity impersonate="true" />ustawienia web.configpliku (jeśli to ustawienie jest zablokowane, administrator machine.configpliku musi to zrobić ).
Ustawienie <identity impersonate="true">jest wspólne w dzielonych środowiskach hostingowych, w których używane są współużytkowane pule aplikacji (w połączeniu z częściowymi ustawieniami zaufania, aby zapobiec odwróceniu personifikowanego konta).
W IIS7.x / ASP.NET kontrola personifikacji jest teraz konfigurowana za pomocą funkcji konfiguracji uwierzytelniania witryny. Możesz więc skonfigurować działanie jako tożsamość puli IUSRlub określone niestandardowe anonimowe konto.
LOCAL SERVICE:
LOCAL SERVICEKonto jest wbudowane konto używane przez menedżera sterowania usługami. Ma minimalny zestaw uprawnień na komputerze lokalnym. Ma dość ograniczony zakres zastosowania:
Konto LocalService
LOCAL SYSTEM:
Nie pytałeś o to, ale dodaję dla kompletności. To jest lokalne konto wbudowane. Ma dość szerokie przywileje i zaufanie. Nigdy nie należy konfigurować strony internetowej ani puli aplikacji, aby działały pod tą tożsamością.
Konto LocalSystem
W praktyce:
W praktyce preferowanym podejściem do zabezpieczania strony internetowej (jeśli witryna otrzyma własną pulę aplikacji - która jest domyślna dla nowej witryny w MMC IIS7) jest uruchomienie Application Pool Identity. Oznacza to ustawienie Tożsamości witryny w ustawieniach zaawansowanych puli aplikacji na Application Pool Identity:

Następnie na stronie internetowej należy skonfigurować funkcję uwierzytelniania:

Kliknij prawym przyciskiem myszy i edytuj wpis Anonimowego uwierzytelnienia:

Upewnij się, że wybrano „Tożsamość puli aplikacji” :

Kiedy przystępujesz do stosowania uprawnień do plików i folderów, przyznajesz tożsamości puli aplikacji, niezależnie od wymaganych uprawnień. Na przykład, jeśli przyznajesz tożsamość puli aplikacji dlaASP.NET v4.0 uprawnień puli, możesz to zrobić za pomocą Eksploratora:

Kliknij przycisk „Sprawdź nazwy”:

Lub możesz to zrobić za pomocą ICACLS.EXE narzędzia:
icacls c: \ wwwroot \ mysite / grant "IIS AppPool \ ASP.NET v4.0" :( CI) (OI) (M)
... lub ... jeśli nazywa się pula aplikacji witryny BobsCatPicBlog wtedy:
icacls c: \ wwwroot \ mysite / grant "IIS AppPool \ BobsCatPicBlog" :( CI) (OI) (M)
Mam nadzieję, że to pomoże wyjaśnić sytuację.
Aktualizacja:
Właśnie natknąłem się na tę doskonałą odpowiedź z 2009 roku, która zawiera wiele przydatnych informacji, które warto przeczytać:
Różnica między kontem „System lokalny” a kontem „Usługa sieciowa”?