Omówienie uprawnień IIS7 - ApplicationPoolIdentity

356

Niedawno zaktualizowaliśmy do IIS7 jako podstawowy serwer sieciowy i potrzebuję przeglądu w zakresie uprawnień. Poprzednio, gdy potrzebowałem pisać do systemu plików, dawałem użytkownikowi AppPool (usługa sieciowa) dostęp do katalogu lub pliku.

W IIS7 domyślnie widzę, że użytkownik AppPool jest ustawiony na ApplicationPoolIdentity. Kiedy więc sprawdzam menedżera zadań, widzę, że konto użytkownika o nazwie „WebSite.com” uruchamia proces IIS („Website.com” to nazwa strony internetowej w IIS)

Jednak to konto użytkownika nie istnieje, jeśli spróbuję go użyć do nadania uprawnień. Jak więc ustalić, który użytkownik udzielić uprawnień?

Edycja ================================================= =============================

Zobacz poniżej problem ze zrzutem ekranu. Nasza strona internetowa (www.silverchip.co.uk) działa pod nazwą użytkownika SilverChip.co.uk. Jednak gdy dodam pemisje, ten użytkownik nie istnieje!

wprowadź opis zdjęcia tutaj

================================= Zobacz obraz AppPool

wprowadź opis zdjęcia tutaj

LiamB
źródło
2
Właściwie informacje Microsoft na ten temat są bardzo dobre Tożsamość puli aplikacji
DanielV

Odpowiedzi:

679

ApplicationPoolIdentity jest właściwie najlepszą praktyką do użycia w IIS7 +. Jest to dynamicznie tworzone, nieuprzywilejowane konto. Aby dodać zabezpieczenia systemu plików dla konkretnej puli aplikacji, zobacz „Tożsamości puli aplikacji” IIS.net . Szybka wersja:

Jeśli pula aplikacji ma nazwę „DefaultAppPool” (po prostu zastąp ten tekst poniżej, jeśli ma inną nazwę)

  1. Otwórz Eksploratora Windows
  2. Wybierz plik lub katalog.
  3. Kliknij plik prawym przyciskiem myszy i wybierz „Właściwości”
  4. Wybierz kartę „Bezpieczeństwo”
  5. Kliknij przycisk „Edytuj”, a następnie przycisk „Dodaj”
  6. Kliknij przycisk „Lokalizacje” i upewnij się, że wybierasz maszynę lokalną . ( Nie domena Windows, jeśli serwer należy do jednej).
  7. Wpisz „ IIS AppPool \ DefaultAppPool ” w polu tekstowym „Wprowadź nazwy obiektów, aby wybrać:”. (Nie zapomnij zmienić tutaj „DefaultAppPool” na dowolną nazwę twojej puli aplikacji.)
  8. Kliknij przycisk „Sprawdź nazwy” i kliknij „OK”.
Jon Adams
źródło
11
@Pino: Nie, nie nazwa strony internetowej. Użyj nazwy puli aplikacji . Każda strona internetowa jest przypisana do puli aplikacji. Możesz określić, który z nich we właściwościach strony internetowej Okno dialogowe Ustawienia podstawowe (w IIS7).
Jon Adams,
2
@Pino: W takim przypadku należy użyć roli bezpieczeństwa IIS AppPool\silverchip.co.uk. Nie próbowałem jednak kropek w nazwach zabezpieczających - możesz zmienić to na coś bez interpunkcji.
Jon Adams,
7
Postępowałem zgodnie z instrukcjami, jak powiedziałeś. Ale jest jeden hack. Musisz ustawić właściwość enable load user profilena truew ustawieniach puli aplikacji. I dopiero po tym ustawieniu mogłem uruchomić aplikację. Zaktualizuj więc instrukcje i dodaj 9. punkt.
Johnny_D
19
Pamiętaj, aby sprawdzić, czy ustawienia serwera dla anonimowego uwierzytelnienia korzystają również z tożsamości puli aplikacji. To rozwiązanie działało dla mnie, gdy tylko wróciłem z IUSR.
bblue
11
Zwróć uwagę tutaj! Nie możesz wyszukać użytkownika za pomocą interfejsu użytkownika, ale musisz go wpisać. Sprawdzanie nazwy to jedyne, co możesz zrobić.
Remco
87

Pamiętaj, aby podczas rozwiązywania nazwy używać nazwy lokalnej serwera, a nie nazwy domeny

IIS AppPool\DefaultAppPool

(tylko przypomnienie, bo to mnie trochę potknęło):wprowadź opis zdjęcia tutaj

James Toomey
źródło
Tak, zapominam o tym za każdym razem, dziękuję za przypomnienie Jamesowi Toomeyowi!
tjans
30

Dając dostęp do IIS AppPool \ YourAppPoolName użytkownik może nie tyle z domyślnych konfiguracji IIS.

W moim przypadku nadal miałem błąd HTTP Error 401.3 - Nieautoryzowany po dodaniu użytkownika AppPool i został naprawiony dopiero po dodaniu uprawnień do użytkownika IUSR .

Jest to konieczne, ponieważ domyślnie dostęp anonimowy odbywa się za pomocą IUSR . Możesz ustawić innego konkretnego użytkownika, pulę aplikacji lub kontynuować używanie IUSR, ale nie zapomnij ustawić odpowiednich uprawnień.

karta uwierzytelniania

Podziękowania dla tej odpowiedzi: Błąd HTTP 401,3 - Nieautoryzowane

Zanon
źródło
3
To jest kluczowe !!! Należy zmienić „Anonimowe uwierzytelnianie” na „Tożsamość puli aplikacji” dla bezpieczeństwa! Jestem pewien, że istnieje dobry powód, dla którego ustawiono IUSR, ale nie mogę wymyślić żadnego. Dzięki!!!
Dan B
To rozwiązało problem. Może to być spowodowane tym, że moja wersja IIS to 8 w systemie Windows Server 2012 R2
myroslav
2
To ważny krok, który należy dodać do zaakceptowanej odpowiedzi. Również najprostszym sposobem jest zmiana pola wyboru na Tożsamość puli aplikacji
Sourcery
1
To był mój problem! Dziękuję Ci!!
Sloan Reynolds
28

W systemie Windows Server 2008 (r2) nie można przypisać tożsamości puli aplikacji do folderu za pomocą Właściwości-> Bezpieczeństwo. Możesz to zrobić za pomocą wiersza polecenia administratora, korzystając z następujących czynności:

icacls "c:\yourdirectory" /t /grant "IIS AppPool\DefaultAppPool":(R)
Chris
źródło
1
czy możesz to trochę wyjaśnić? Co znaczy (R)? Czy faktycznie wpisujesz nawiasy kątowe w tym poleceniu?
Kate Gregory
3
Cześć Kate, używałem <>, aby oznaczyć „swoją nazwę aplikacji”, ale pozostawiłem ją w prawidłowej nazwie aplikacji. W Menedżerze IIS -> Pule aplikacji musisz dopasować nazwę, łącznie ze spacjami. Ostatnim, co zrobiłem, było „IIS AppPool \ ClientName_CompanyName - Intranet”. : (R) w tym przypadku przyznaje dostęp do odczytu. Możesz także użyć F (pełny), M (modyfikować), RX (odczyt + wykonanie) i W (tylko zapis).
Chris
9
Możesz faktycznie przypisać za pomocą karty Papierów Wartościowych we Właściwościach w Windows Server 2008 R2, więc nie powinieneś potrzebować tego obejścia. Upewnij się, że masz wbudowane zasady bezpieczeństwa wybrane dla typów obiektów i lokalizacji.
rism
Ta odpowiedź działa dla mnie. Wybrana odpowiedź nie działa dla mnie.
Tuyen Nguyen
3
zobacz także oryginalną odpowiedź na wybraną odpowiedź [link] serverfault.com/questions/81165 / ... W przypadku zwykłego systemu Windows Server 2008 (lub edycji Datacenter) wystarczy użyć wiersza polecenia, aby uzyskać dostęp do konta w puli aplikacji dialog. Gdy już tam jest, możesz nim zarządzać, zmieniać poziomy uprawnień, podkatalogów itp. Zastanów się również: „icacls” c: \ twoj katalog ”/ t / grant„ IIS AppPool \ DefaultAppPool ”:( OI) (CI) (R)„ OI - dziedziczenie obiektów, dziedziczenie kontenera CI.
secretwep
7

Część A: Konfigurowanie puli aplikacji

Załóżmy, że pula aplikacji nosi nazwę „MyPool”. Przejdź do „Ustawień zaawansowanych” puli aplikacji w Menedżerze IIS

  1. Przewiń w dół do „Tożsamości”. Próba edycji wartości spowoduje wyświetlenie okna dialogowego. Wybierz „Wbudowane konto”, a pod nim wybierz „ApplicationPoolIdentity”.

  2. Kilka wierszy poniżej „Tożsamości” powinieneś znaleźć „Załaduj profil użytkownika”. Ta wartość powinna być ustawiona na „True”.

Część B: Konfigurowanie witryny

  1. Nazwa strony: SiteName (tylko przykład)
  2. Ścieżka fizyczna: C: \ Cokolwiek (tylko przykład)
  3. Połącz jako ...: Użytkownik aplikacji (uwierzytelnianie tranzytowe) (powyższe ustawienia można znaleźć w „Ustawieniach podstawowych” witryny w Menedżerze IIS)
  4. Po skonfigurowaniu podstawowych ustawień poszukaj konfiguracji „Uwierzytelnianie” w sekcji „IIS” w głównej konsoli witryny. Otwórz to. Powinieneś zobaczyć opcję „Anonimowego uwierzytelnienia”. Upewnij się, że jest włączony. Następnie kliknij prawym przyciskiem myszy i wybierz opcję „Edytuj ...”. Wybierz „Tożsamość puli aplikacji”.

Część C: Konfigurowanie folderu

Folder, o którym mowa, to C: \ Cokolwiek

  1. Przejdź do Właściwości - Udostępnianie - Udostępnianie zaawansowane - Uprawnienia i zaznacz „Udostępnij ten folder”
  2. W tym samym oknie dialogowym znajduje się przycisk „Uprawnienia”. Kliknij to.
  3. Otworzy się nowe okno dialogowe. Kliknij „Dodaj”.
  4. Otworzy się nowe okno dialogowe „Wybierz użytkowników lub grupy”. W obszarze „Z tej lokalizacji” upewnij się, że nazwa jest taka sama jak nazwa lokalnego komputera hosta. Następnie w polu „Wprowadź nazwy obiektów” wpisz „IIS AppPool \ MyPool” i kliknij „Sprawdź nazwy”, a następnie „Ok”
  5. Nadaj pełne uprawnienia udostępniania użytkownikowi „MyPool”. Zastosuj i zamknij właściwości folderu
  6. Otwórz ponownie właściwości folderu. Tym razem przejdź do Security - Advanced - Permission i kliknij Add. U góry pojawi się opcja „Wybierz zleceniodawcę” lub inna opcja wyboru użytkownika. Kliknij to.
  7. Okno dialogowe „Wybierz użytkowników lub grupy” otworzy się ponownie. Powtórz krok 4.
  8. Nadaj wszystkie lub tyle uprawnień, ile potrzebujesz użytkownikowi „MyPool”.
  9. Zaznacz „Zamień wszystkie uprawnienia do obiektów potomnych ...” i Zastosuj i zamknij.

Powinieneś teraz móc korzystać z przeglądania strony

Dibyodyuti Mondal
źródło
Jesteś królem dżungli! Dziękuję
tno2007
5

Najlepsza odpowiedź od Jona Adamsa

Oto jak zaimplementować to dla ludzi PowerShell

$IncommingPath = "F:\WebContent"
$Acl = Get-Acl $IncommingPath
$Ar = New-Object  system.security.accesscontrol.filesystemaccessrule("IIS AppPool\DefaultAppPool","FullControl","ContainerInherit, ObjectInherit", "None", "Allow")
$Acl.SetAccessRule($Ar)
Set-Acl $IncommingPath $Acl
Chris Mills
źródło
1

Aby dodać zamieszanie, okno dialogowe Efektywne uprawnienia (Eksplorator Windows) nie działa dla tych loginów. Mam witrynę „Umbo4” korzystającą z uwierzytelniania przekazywanego i sprawdziłem efektywne uprawnienia użytkownika w folderze głównym witryny. Test sprawdzania nazw rozwiązał nazwę „IIS AppPool \ Umbo4”, ale Efektywne uprawnienia pokazują, że użytkownik nie miał żadnych uprawnień do folderu (wszystkie pola wyboru są odznaczone).

Następnie wyraźnie wykluczyłem tego użytkownika z folderu, korzystając z karty Security Explorer. Spowodowało to awarię witryny z błędem HTTP 500.19, zgodnie z oczekiwaniami. Efektywne uprawnienia wyglądały jednak dokładnie tak jak poprzednio.

StuartN
źródło
1

Naprawiłem wszystkie moje problemy z asp.net, po prostu tworząc nowego użytkownika o nazwie IUSER z hasłem i dodając go do usługi sieciowej i grup użytkowników. Następnie utwórz wszystkie wirtualne witryny i aplikacje. Ustaw uwierzytelnianie na IUSER za pomocą hasła. Ustaw dostęp do plików na wysokim poziomie, aby uwzględnić IUSER i BAM. Naprawiono co najmniej 3-4 problemy, w tym ten ..

Dave

David Granic
źródło