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


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”.

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


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


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)

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


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

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.


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

Korzystając z naszej strony potwierdzasz, że przeczytałeś(-aś) i rozumiesz nasze zasady używania plików cookie i zasady ochrony prywatności.
Licensed under cc by-sa 3.0 with attribution required.