Jak przypisać uprawnienia do konta ApplicationPoolIdentity

263

W IIS 7 w systemie Windows Server 2008 pule aplikacji można uruchamiać jako konto „ApplicationPoolIdentity” zamiast konta NetworkService.

Jak przypisać uprawnienia do tego konta „ApplicationPoolIdentity”. Nie pojawia się jako użytkownik lokalny na komputerze. Nigdzie nie pojawia się jako grupa. Nigdzie nie ma nic takiego, jak się wydaje. Gdy przeglądam lokalnych użytkowników, grupy i konta wbudowane, nie pojawia się na liście, ani nic podobnego nie pojawia się na liście. Co się dzieje?

Nie tylko ja mam ten problem: na przykład patrz Problem z ApplicationPoolIdentity w IIS 7.5 + Windows 7 .


„Jest to niestety ograniczenie wyboru obiektów w systemie Windows Server 2008 / Windows Vista - ponieważ kilka osób już je odkryło, nadal możesz manipulować listą ACL dla tożsamości puli aplikacji za pomocą narzędzi wiersza polecenia, takich jak icacls .”

Triynko
źródło

Odpowiedzi:

289

Aktualizacja: pierwotne pytanie dotyczyło systemu Windows Server 2008, ale rozwiązanie jest łatwiejsze w systemach Windows Server 2008 R2 i Windows Server 2012 (oraz Windows 7 i 8). Możesz dodać użytkownika poprzez interfejs NTFS, wpisując go bezpośrednio. Nazwa ma format IIS APPPOOL \ {nazwa puli aplikacji}. Na przykład: IIS APPPOOL \ DefaultAppPool.

IIS APPPOOL\{app pool name}

Uwaga: w komentarzach poniżej należy pamiętać o dwóch rzeczach:

  • Wpisz ciąg bezpośrednio w „Wybierz użytkownika lub grupę”, a nie w polu wyszukiwania.
  • W środowisku domeny musisz najpierw ustawić lokalizację na komputerze lokalnym.

Odniesienie do artykułu Microsoft Docs: Tożsamości puli aplikacji> Zabezpieczanie zasobów

Oryginalna odpowiedź: (dla Windows Server 2008) To świetna funkcja, ale jak wspomniałeś, nie jest jeszcze w pełni zaimplementowana. Możesz dodać tożsamość puli aplikacji z wiersza polecenia za pomocą czegoś takiego jak icacls, a następnie możesz zarządzać nią z GUI. Na przykład uruchom coś takiego z wiersza polecenia:

icacls c:\inetpub\wwwroot /grant "IIS APPPOOL\DefaultAppPool":(OI)(CI)(RX)

Następnie w Eksploratorze Windows przejdź do folderu wwwroot i edytuj uprawnienia bezpieczeństwa. Zobaczysz coś, co wygląda jak grupa (ikona grupy) o nazwie DefaultAppPool. Możesz teraz edytować uprawnienia.

Jednak wcale nie musisz tego używać. Jest to bonus, z którego możesz skorzystać, jeśli chcesz. Możesz użyć starego sposobu tworzenia niestandardowego użytkownika dla puli aplikacji i przypisywania niestandardowego użytkownika do dysku. Ma pełne wsparcie dla interfejsu użytkownika.

Ta metoda wstrzykiwania identyfikatora SID jest przyjemna, ponieważ pozwala korzystać z jednego użytkownika, ale w pełni odizolować każdą witrynę od siebie bez konieczności tworzenia unikalnych użytkowników dla każdej puli aplikacji. Całkiem imponujące, a będzie jeszcze lepiej z obsługą interfejsu użytkownika.

Uwaga: Jeśli nie możesz znaleźć użytkownika puli aplikacji, sprawdź, czy usługa Windows o nazwie Pomocnik hosta aplikacji jest uruchomiona. Jest to usługa mapująca użytkowników puli aplikacji na konta Windows.

Scott Forsyth - MVP
źródło
1
Jest to rodzaj dziwnej bestii, ponieważ nie jest jak grupa, w której użytkownik mieszka w grupie, i nie jest to konto komputerowe kontra konto użytkownika, które są całkowicie różne od siebie. Konto puli aplikacji „nakłada się” na użytkownika tożsamości puli aplikacji. Na przykład możesz mieć 5 pul aplikacji za pomocą usługi sieciowej i 5 innych kont niestandardowych, ale są to 10 różnych kont pul aplikacji zarządzanych przez system. Zalety zauważono w folderze c: \ inetpub \ temp \ appPools, w którym jest on zarządzany automatycznie i porządnie blokuje system. IIS dobrze je wykorzystuje. Nasze zastosowanie do folderów jest opcjonalne.
Scott Forsyth - MVP
29
Zauważ, że jeśli wpiszesz „IIS APPPOOL \ DefaultAppPool” bezpośrednio w „Wybierz użytkownika lub grupę” (zamiast szukać) podczas edycji uprawnień, będzie to dobrze rozpoznane (testowane na Win7 x64 i Win2k8 R2 x64).
Milan Gardian,
5
Masz rację dla Win7 i Win2k8 R2. Nie został zaimplementowany w Win2k8 RTM, ale jest w R2.
Scott Forsyth - MVP
9
W końcu to otrzymałem - jeśli wpiszesz nazwę puli aplikacji bezpośrednio tak, jak @Milan Gardian mówi powyżej i zmienisz pole lokalizacji na maszynę lokalną, to
zadziała
4
Dziękuję bardzo za „dwie rzeczy, o których należy pamiętać”. Natknąłem się na oba z nich, a to było jasne i proste wyjaśnienie problemów i tego, jak osiągnąć to, czego potrzebowałem. Szkoda tylko, że żadna dokumentacja MSDN nie była tak jasna.
Ian Grainger
22

Musisz upewnić się, że From this locationpole jest ustawione local machinena domenę, a nie na domenę.

Miałem ten sam problem i raz go zmieniłem, że działało dobrze.

Alan
źródło
4

Powinieneś naprawdę tworzyć grupy według „roli” i przypisywać dostęp do tej grupy do systemu plików. Następnie w razie potrzeby dodaj pulę aplikacji do grup specyficznych dla roli. W ten sposób nawet jeśli później usuniesz pulę aplikacji (a użytkownik wirtualny przejdzie do kupy ), nie musisz się martwić o ponowne wykonanie wszystkich uprawnień, po prostu dodajesz zastępczą pulę aplikacji do istniejącej grupy.

Jimbo
źródło
3

Po przeczytaniu @Scott Forsyth - odpowiedź MVP próbowałem ponownie uruchomić usługę pomocniczą hosta aplikacji. To rozwiązało problem dla mnie.

zrozumiałem
źródło
0

Uruchomiłem WS8 R2 i nie mogłem dodać IIS APPPOOL\DefaultAppPoolza pomocą Eksploratora Windows. Jedyny sposób, w jaki działał, to za pomocą wiersza poleceń:

cacls [ŚCIEŻKA PLIKU] / T / E / G „IIS APPPOOL \ DefaultAppPool”: C

Denis Tse
źródło
2
Co dziwne, musiałem zrobić „IIS AppPool \ DefaultAppPool”, aby został zaakceptowany. Zwróć uwagę na mieszaną wielkość liter - wszystkie wielkie litery, jak zrobiłem za pierwszym razem, nie zostały zaakceptowane z GUI.
Jeff McJunkin
0

Jeśli to pytanie dotyczy sposobu wykonania _sp_send_dbmail w bazie danych msdb (przy użyciu procedury przechowywanej SQL Mail Database w MSdb), oto kilka obejść. Dodaj nazwę użytkownika aplikacji .net bazy danych (która jest zdefiniowana w parametrze połączenia w aplikacji .net) do użytkownika msdb z członkostwem w roli „DatabaseMailUserRole”

Muhamad Faried
źródło