Вопрос: Как назначить разрешения учетной записи ApplicationPoolIdentity


В IIS 7 на Windows Server 2008 пулы приложений могут запускаться как учетная запись «ApplicationPoolIdentity» вместо учетной записи NetworkService.

Как назначить разрешения для этой учетной записи «ApplicationPoolIdentity». Он не отображается как локальный пользователь на машине. Он не отображается как группа нигде. Ничего отдаленного, как это нигде. Когда я просматриваю локальные пользователи, группы и встроенные учетные записи, он не отображается в списке, и ничего подобного не появляется в списке. Что происходит?

Я не единственный с этой проблемой: см. Проблема с ApplicationPoolIdentity в IIS 7.5 + Windows 7 для примера.


«Это, к сожалению, ограничение выбора объекта на Windows Server 2008 / Windows Vista, поскольку несколько человек уже его обнаружили, вы все же можете манипулировать ACL для идентификации приложения с помощью инструментов командной строки, таких как: Icacls«.


248
2017-11-03 21:52


Источник




Ответы:


Обновить: Первоначальный вопрос был для Windows Server 2008, но решение проще для Windows Server 2008 R2 и Windows Server 2012 (и Windows 7 и 8). Вы можете добавить пользователя через интерфейс NTFS, введя его напрямую. Имя находится в формате IIS APPPOOL \ {имя пула приложений}. Например: IIS APPPOOL \ DefaultAppPool.

IIS APPPOOL\{app pool name}

Примечание. В следующих комментариях есть две вещи, о которых нужно знать:

  • Введите строку непосредственно в «Выбрать пользователя или группу», а не в поле поиска.
  • В доменной среде вам нужно сначала установить местоположение на ваш локальный компьютер.

Оригинальный ответ: (для Windows Server 2008) Это отличная функция, но, как вы уже упоминали, она еще не полностью реализована. Вы можете добавить идентификатор пула приложений из командной строки с помощью чего-то вроде icacls, после чего вы сможете управлять им из графического интерфейса. Например, запустите в командной строке что-то вроде этого:

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

Затем в проводнике Windows перейдите в папку wwwroot и отредактируйте разрешения безопасности. Вы увидите, что похоже на группу (значок группы) под названием DefaultAppPool. Теперь вы можете редактировать разрешения.

Однако вам не нужно использовать это вообще. Это бонус, который вы можете использовать, если хотите. Вы можете использовать старый способ создания пользовательского пользователя для каждого пула приложений и назначения пользовательского пользователя на диск. У этого есть полная поддержка пользовательского интерфейса.

Этот метод SID-инъекции хорош, поскольку он позволяет использовать одного пользователя, но полностью изолировать каждый сайт друг от друга, не создавая уникальных пользователей для каждого пула приложений. Довольно впечатляет, и это будет еще лучше с поддержкой пользовательского интерфейса.

Примечание. Если вы не можете найти пользователя пула приложений, проверьте, не запущена ли служба Windows, называемая службой поддержки хоста приложений. Это сервис, который сопоставляет пользователей пула приложений с учетными записями Windows.


279
2017-11-04 03:07



Это своего рода странный зверь, поскольку он не похож на группу, в которой пользователь живет в группе, и это не похоже на учетную запись компьютера и учетную запись пользователя, которая полностью отличается друг от друга. Учетная запись пула приложений «перекрывает» пользователя идентификации пула приложений. Например, вы можете иметь 5 пулов приложений, использующих Network Service, и еще 5 пользователей, использующих настраиваемые учетные записи, но они представляют собой 10 различных учетных записей пула приложений, управляемых системой. Преимущества замечаются в папке c: \ inetpub \ temp \ appPools, где она управляется автоматически и систематически блокирует систему. IIS использует их хорошо. Наше использование в папках не является обязательным. - Scott Forsyth - MVP
Обратите внимание: если вы введете «IIS APPPOOL \ DefaultAppPool» прямо в «Выбрать пользователя или группу» (вместо поиска) при редактировании разрешений, он будет признан просто прекрасным (протестирован на Win7 x64 и Win2k8 R2 x64). - Milan Gardian
Вы правы для Win7 и Win2k8 R2. Он не был реализован в RTM Win2k8, но находится в R2. - Scott Forsyth - MVP
Наконец, получил это - если вы наберете имя пула приложений прямо, как @Milan Gardian говорит выше а также измените поле местоположения на локальную машину, затем оно будет работать - Ciaran Bruen
Большое вам спасибо за «две вещи, о которых нужно знать». Я натыкался на них обоих, и это было ясное и простое объяснение проблем и как добиться того, что мне нужно. Это просто позор, ни одна из документации MSDN не была такой ясной. - Ian Grainger


Вы должны убедиться, что поле «Из этого местоположения» установлено на локальный компьютер, а не на домен.

У меня была одна и та же проблема, и как только я изменил это, все было в порядке.


21
2017-08-01 13:29





Вы действительно должны создавать группы на «роль» и назначать доступ к этой группе в файловой системе. Затем при необходимости добавьте пул приложений в группы ролей. Таким образом, даже если вы удалите пул приложений позже (и виртуальный пользователь уйдет гомосексуалист), вам не нужно беспокоиться о повторении всех разрешений, вы просто добавляете замененный пул приложений в существующую группу.


4
2018-06-14 17:42





Прочитав ответ @Scott Forsyth - MVP, я попытался перезапустить службу помощника хоста приложений. Это решило проблему для меня.


3
2017-12-04 11:05





Я запускал WS8 R2, и я не мог добавить IIS APPPOOL\DefaultAppPool через проводник Windows. Единственный способ, которым это работало, - через командную строку:

cacls [FILE PATH] / T / E / G "IIS APPPOOL \ DefaultAppPool": C


0
2018-03-19 14:46



Как ни странно, мне пришлось сделать «IIS AppPool \ DefaultAppPool», чтобы он был принят. Обратите внимание на смешанный случай - все прописные буквы, как я сделал в первый раз, не были приняты из графического интерфейса. - Jeff McJunkin


Если этот вопрос связан с тем, как выполнить _sp_send_dbmail в базе данных msdb (используя хранимую процедуру SQL Mail Database Mail в msdb), выполните некоторые действия. Добавьте имя пользователя приложения .net вашей базы данных (которое определено в вашей строке подключения в приложении .net) пользователю msdb с членством в роли «DatabaseMailUserRole»


0
2017-07-25 00:50