Огляд дозволів IIS7 - ApplicationPoolIdentity


356

Нещодавно ми оновили до IIS7 як основний веб-сервер, і мені потрібен огляд з точки зору дозволів. Раніше, коли потрібно писати у файлову систему, я мав би надати користувачеві AppPool (мережевий сервіс) доступ до каталогу або файлу.

У IIS7 я бачу за замовчуванням користувача AppPool ApplicationPoolIdentity. Тож коли я перевіряю диспетчер завдань, я бачу, що в обліковому записі користувача під назвою "WebSite.com" працює процес IIS ("Website.com" - це назва веб-сайту в IIS)

Однак цього облікового запису користувача не існує, якщо я намагаюся використовувати це для надання дозволів. Отже, як я можу визначити, якому користувачеві також надавати дозволи?

Редагувати ==================================================== ==============================

Дивіться нижче про проблему на знімку екрана. Наш веб-сайт (www.silverchip.co.uk) працює на ім'я користувача SilverChip.co.uk. Однак, коли я додаю пемісії, цей користувач існує!

введіть тут опис зображення

=================================== Див. Зображення AppPool

введіть тут опис зображення


2
Насправді інформація про
мікрософт

Відповіді:


679

ApplicationPoolIdentity - це фактично найкраща практика для використання в IIS7 +. Це динамічно створений, непривілейований рахунок. Щоб додати безпеку файлової системи для певного пулу додатків, див . "Ідентифікатори пулу програм" IIS.net . Швидка версія:

Якщо пул додатків названий "DefaultAppPool" (просто замініть цей текст нижче, якщо він названий інакше)

  1. Відкрийте Провідник Windows
  2. Виберіть файл або каталог.
  3. Клацніть файл правою кнопкою миші та виберіть "Властивості"
  4. Виберіть вкладку "Безпека"
  5. Натисніть кнопку "Редагувати", а потім кнопку "Додати"
  6. Натисніть кнопку "Місцеположення" та переконайтесь, що ви вибрали локальну машину. ( Не домен Windows, якщо сервер належить до нього.)
  7. Введіть " IIS AppPool \ DefaultAppPool " у текстове поле "Введіть імена об'єктів для вибору:". (Не забудьте змінити тут "DefaultAppPool" на те, що ви назвали пулом додатків.)
  8. Натисніть кнопку "Перевірити імена" і натисніть "ОК".

11
@Pino: Ні, не назва веб-сайту. Використовуйте назву пулу програм . Кожен веб-сайт призначається пулу програм. Ви можете вказати, хто з них у діалоговому вікні "Основні налаштування" (у IIS7) властивостей веб-сайту.
Джон Адамс

2
@Pino: У такому випадку роль безпеки має бути IIS AppPool\silverchip.co.uk. Я не пробував періодів в іменах безпеки - можливо, ви захочете змінити це на щось без пунктуації.
Джон Адамс

7
Я дотримувався ваших інструкцій, як ви сказали. Але є один злом. Ви повинні встановити властивість enable load user profileдля trueв налаштуваннях пулу додатків. І лише після цього налаштування я зміг запустити додаток. Тому, будь ласка, оновіть ваші інструкції та додайте 9-й бал.
Johnny_D

19
Не забудьте перевірити, що в налаштуваннях сервера для анонімної автентифікації також використовується ідентифікація пулу програм. Це рішення спрацювало для мене, як тільки я повернувся з IUSR.
bblue

11
Зверніть увагу тут! Ви не можете шукати користувача за допомогою інтерфейсу користувача, але вам потрібно ввести його. Перевірка імені - це єдине, що ви можете зробити.
Ремко

87

Не забудьте використовувати місцеве ім'я сервера, а не доменне ім'я при вирішенні імені

IIS AppPool\DefaultAppPool

(лише нагадування, тому що це мене трохи спричинило):введіть тут опис зображення


Так, я щоразу забуваю це, дякую за нагадування про Джеймса Томі!
tjans

30

Надання доступу до IIS AppPool \ YourAppPoolName користувача може бути недостатньо для конфігурацій за замовчуванням IIS.

У моєму випадку у мене все ще була помилка HTTP помилка 401.3 - Несанкціонована після додавання користувача AppPool, і вона була виправлена ​​лише після додавання дозволу користувачу IUSR .

Це необхідно, тому що за замовчуванням анонімний доступ здійснюється за допомогою IUSR . Ви можете встановити іншого конкретного користувача, пул додатків або продовжити використання IUSR, але не забудьте встановити відповідні дозволи.

вкладка аутентифікації

Кредити на цю відповідь: Помилка HTTP 401.3 - Несанкціонована


3
Це важливо !!! Потрібно змінити "Анонімну автентифікацію" на "Ідентифікація пулу додатків" для безпеки! Я впевнений, що є вагома причина, що вона встановлена ​​на IUSR, але я не можу придумати жодної. Дякую!!!
Дан Б

Це вирішило для мене проблему. Це може бути тому, що моя версія IIS 8 на Windows Server 2012 R2
myroslav

2
Це важливий крок, який слід додати до прийнятої відповіді. Також найпростішим способом є зміна радіосигналу на ідентифікацію пулу додатків
Sourcery

1
Це була моя проблема! Дякую!!
Слоун Рейнольдс

28

У Windows Server 2008 (r2) ви не можете призначити ідентичність пулу додатків папці через Properties-> Security. Ви можете зробити це через командний рядок адміністратора, використовуючи наступне:

icacls "c:\yourdirectory" /t /grant "IIS AppPool\DefaultAppPool":(R)

1
ви можете це трохи пояснити? Що означає (R)? Ви дійсно вводите кутові дужки в цій команді?
Кейт Григорій

3
Привіт, Кейт, я використовував <> для позначення тут "вашого імені apppool", але залишив законну назву apppool. У IIS Manager -> Пулове програм вам потрібно буде відповідати імені, включеному пробілам. Останнє, що я зробив, було "IIS AppPool \ ClientName_CompanyName - Інтранет". : (R) у цьому випадку надає доступ для читання. Ви також можете використовувати F (повний), M (модифікувати), RX (читати + виконувати) і W (лише для запису).
Кріс

9
Дійсно можна призначити на вкладці "Цінні папери" в "Властивості" в Windows Server 2008 R2, тому вам не потрібно цього вирішення. Переконайтеся, що у вас є вбудовані принципи безпеки, вибрані для типів об’єктів та місця розташування.
rism

Ця відповідь працює для мене. Вибрана відповідь не працює для мене.
Tuyen Nguyen

3
дивіться також оригінальну відповідь на обрану відповідь [посилання] serverfault.com/questions/81165/… Для звичайного Windows Server 2008 (або видання Datacenter) вам в значній мірі доводиться використовувати командний рядок, щоб отримати обліковий запис пулу додатків у безпеці діалог. Як тільки він є, ви можете керувати ним, змінювати рівні дозволів, для підкаталогів тощо. Також врахуйте: "icacls" c: \ yourdirectory "/ t / grant" IIS AppPool \ DefaultAppPool ":( OI) (CI) (R)" OI -наступництво об'єкта, успадкування C-контейнера.
secretwep

7

Частина A: Налаштування пулу додатків

Припустимо, пул додатків має назву "MyPool". Перейдіть до "Розширені налаштування" пулу програм від менеджера IIS

  1. Прокрутіть униз до пункту «Ідентичність». Якщо спробувати відредагувати значення, з’явиться діалогове вікно. Виберіть "Вбудований рахунок" і під ним виберіть "ApplicationPoolIdentity".

  2. У кількох рядках нижче "Ідентичність" ви можете знайти "Завантажити профіль користувача". Це значення повинно бути встановлено як "True".

Частина B: Налаштування веб-сайту

  1. Назва веб-сайту: SiteName (лише приклад)
  2. Фізичний шлях: C: \ Що б не було (лише приклад)
  3. Підключення як ...: Користувач програми (автентифікація через пропуск) (Вищенаведені налаштування можна знайти в "Основні налаштування" сайту в Менеджері IIS)
  4. Після налаштування основних параметрів шукайте конфігурацію "Автентифікація" у розділі "IIS" на головній консолі сайту. Відкрий це. Ви повинні побачити опцію "Анонімна автентифікація". Переконайтесь, що вона включена. Потім клацніть правою кнопкою миші та "Редагувати ...". Виберіть "Ідентифікатор пулу програми".

Частина C: Налаштування вашої папки

Ця папка - це C: \ Що б там не було

  1. Перейдіть до Властивості - Обмін - Розширений обмін - Дозволи та позначте "Надіслати цю папку"
  2. У цьому ж діалоговому вікні ви знайдете кнопку "Дозволи". Клацніть по ньому.
  3. Відкриється нове діалогове вікно. Натисніть "Додати".
  4. Відкриється нове діалогове вікно "Вибрати користувачів або групи". У розділі "З цього місця" переконайтесь, що ім'я збігається з вашим локальним хост-комп'ютером. Потім у розділі "Введіть імена об'єктів" введіть "IIS AppPool \ MyPool" і натисніть "Перевірити імена", а потім "Ок"
  5. Надайте повні дозволи для користувача "MyPool". Застосуйте його та закрийте властивості папки
  6. Знову відкрийте властивості папки. Цього разу перейдіть у розділ Безпека - Додатково - Дозвіл та натисніть кнопку Додати. Буде опція "Вибрати головного" вгорі або інша опція для вибору користувача. Клацніть по ньому.
  7. Діалогове вікно "Вибрати користувачів або групи" знову відкриється. Повторіть крок 4.
  8. Надайте всі або стільки необхідних дозволів користувачеві MyPool.
  9. Поставте прапорець "Замінити всі дозволені об'єкти ..." та застосуйте та закрийте.

Тепер ви зможете користуватися веб-сайтом для перегляду


Ти король джунглів! Дякую
tno2007

5

Топ відповіді від Jon Adams

Ось як це реалізувати для людей із 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

Просто для додання плутанини, діалог "Ефективні дозволи" (Windows Explorer) не працює для цих входів. У мене є сайт "Umbo4", що використовує аутентифікацію проходження, і переглянув ефективні дозволи користувача в кореневій папці сайту. Тест перевірки імен вирішив назву "IIS AppPool \ Umbo4", але Ефективні дозволи показують, що користувач не мав дозволів на папку (усі прапорці не встановлені).

Потім я виключив цього користувача з папки явно, використовуючи вкладку Безпека Провідника. Це призвело до помилки сайту з помилкою HTTP 500.19, як очікувалося. Однак ефективні дозволи виглядали точно так, як і раніше.


1

Я вирішив усі проблеми з asp.net, просто створивши нового користувача під назвою IUSER з паролем і додав до нього Службу мережі та групи користувачів. Потім створіть усі ваші віртуальні сайти та програми, встановіть автентифікацію на IUSER за допомогою свого пароля .. встановіть доступ до файлів високого рівня, щоб включити IUSER та BAM, він виправив щонайменше 3-4 проблеми, включаючи цей ..

Дейв

Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.