Сервісний центр VPSGroup ремонт комп'ютерної техніки, заправка картриджів, ремонт оргтехніки, Київ, Виставковий центр, Васильківська, 55

Application Pool Identities в IIS.

Кожен пул додатків в IIS використовує свій власний робочий процес (IIS Worker Process). Посвідчення пулу додатків (Application Pool Identities) представляє з себе ім'я облікового запису, під якою виконується робочий процес цього пулу.

В IIS 6.0 і IIS 7.0 пул додатків за замовчуванням працював під вбудованої системної обліковим записом NetworkService.Цей запис не вимагає пароля і має на локальному комп'ютері обмежені права, що є хорошою практикою з точки зору безпеки. Однак під цим обліковим записом можуть одночасно працювати різні системні служби Windows, і при використанні одного і того ж ідентифікатора одні служби можуть впливати на роботу інших.

Починаючи з Windows Server 2008 SP2 для того, щоб ізолювати робочі процеси IIS від інших системних служб, можна використовувати віртуальні облікові записи (Virtual Accounts). Вони дозволяють запускати робочий процес для кожного пулу додатків під власною унікальною обліковим записом ApplicationPoolIdentity.Цей обліковий запис не вимагає управління і створюється автоматично при створенні кожного нового пулу. Також вона не має практично ніяких привілеїв в системі і не використовує профіль користувача, що підвищує безпеку веб-сервера.

Для прикладу візьмемо Application Pool з ім'ям PubSite1.Відкриваємо Task Manager і знаходимо робочий процес IIS (w3wp.exe), що виконується від імені PubSite1. Як бачите, ім'я облікового запису збігається з ім'ям пулу додатків. Справа в тому, що починаючи з IIS 7.5 для кожного новоствореного пулу додатків за замовчуванням створюється віртуальна обліковий запис з ім'ям цього пулу, і його робочий процес запускається з під цього запису.



Налаштування типу посвідчення пулу додатків

При необхідності тип ідентифікації пулу додатків можна змінити. Для цього запускаємо IIS Manager, переходимо в розділ Application Pools, вибираємо потрібний пул і відкриваємо його властивості (Advanced Settings).



У властивостях вибираємо пункт Identity.



Тут ми вказуємо обліковий запис, від імені якої буде працювати даний пул додатків:

• ApplicationPoolIdentity - обліковий запис посвідчення пулу додатків. Створюється автоматично при запуску пулу додатків і має мінімальні права на локальному комп'ютері.Це найбільш безпечний варіант, починаючи з IIS 7.5 використовується за умовчанням;
• LocalService - вбудований обліковий запис, яка має обмежені права на локальному комп'ютері. Приблизно те ж саме, що і NetworkService, але обмежена лише локальним комп'ютером;
• LocalSystem - системна обліковий запис, що має необмежені права на локальному комп'ютері.Найменш безпечний варіант, по можливості не рекомендується її використовувати;
• NetworkService - обліковий запис, який має обмежені права на локальному комп'ютері, а також може використовуватися для доступу до ресурсів в мережі Active Directory на підставі облікового запису комп'ютера.



Крім того, в якості посвідчення можна використовувати і звичайну обліковий запис користувача. Для цього треба вибрати Custom Account, натиснути кнопку Set і ввести ім'я користувача і пароль. Можна вказати будь-якого доменного або локального користувача.



Примітка.При використанні облікового запису користувача треба відслідковувати термін дії пароля і своєчасно міняти його.

Те ж саме можна зробити за допомогою утиліти командного рядка appcmd. Щоб вказати обліковий запис, який буде використовуватися для пулу додатків, використовується наступний синтаксис:

appcmd set config/section: applicationpools/[name = "ім'я пулу додатків"].processModel.identityType: SpecificUser | NetworkService | LocalService | LocalSystem

Для прикладу змінимо тип посвідчення для пулу додатків PubSite1 на NetworkService:

appcmd set config/section: applicationpools
/[ name = "PubSite1"]. processModel.identityType: NetworkService

профіль користувача

За замовчуванням IIS не використовує профіль користувача, але деякі програми можуть зажадати використання профілю, наприклад для зберігання тимчасових файлів.Профіль для облікового запису NetworkService створюється системою і завжди доступний. Стандартні пули додатків (DefaultAppPool, Classic .NET AppPool і т.п.) також мають профіль користувача на диску, однак при використанні ApplicationPoolIdentity профіль не створюється автоматично.

Якщо ви хочете налаштувати ApplicationPoolIdentity на використання призначеного для користувача профілю, то треба зайти в розширені властивості пулу і перевести параметр Load User Profile в стан True.



Налаштування доступу до ресурсів

Іноді веб-додатку може знадобитися доступ до певної папки або файлу на диску. Щоб додати ApplicationPoolIdentity в Access Control List (ACL):

• Запускаємо Windows Explorer;
• Вибираємо потрібний файл або директорію, натискаємо по ній правою клавішею миші і вибираємо пункт Властивості (Properties);
• Переходимо на вкладку Безпека (Security),
• Кількома по кнопці Змінити (Edit), потім Додати (Add);
• У поле Розміщення (Locations) вибираємо локальну машину;
• вводимо ім'я користувача у вигляді "IIS AppPool \ ім'я пулу додатків".Так для пулу додатків PubSite1 ім'я користувача буде виглядати "IIS AppPool \ PubSite1";
• Перевіряємо ім'я клавішею Перевірити імена (Check Names) і тиснемо ОК.



Також при бажанні можна скористатися утилітою командного рядка ICACLS. Для прикладу дамо права на зміну для PubSite1:

ICACLS C: \ Web \ Pubsite1/grant "IIS AppPool \ PubSite1": M

Список дозволів виглядає наступним чином:

D - видалення;
F - повний доступ;
M - зміна;
RX - читання і виконання;
R - читання;
W - запис.

Якщо ресурс знаходиться в мережі, то для доступу до нього найкраще використовувати обліковий запис NetworkService. Робочий процес, запущений під цим обліковим записом, для доступу до ресурсів використовує облікові дані комп'ютера, згенеровані при додаванні комп'ютера в домен. Для того, щоб дати процесу доступ до мережного ресурсу, як користувач вказуємо комп'ютер:

• Вибираємо тип об'єкта (Object Type) Computers;
• У поле Розміщення (Locations) вибираємо домен;
• Вводимо ім'я користувача у вигляді domainname \ machinename $, наприклад contoso \ SRV12 $;
• Перевіряємо ім'я і тиснемо ОК.



Дуже зручний спосіб надавати доступ до мережевих ресурсів типу файлових куля або баз даних SQL Server. Однак працює він тільки при наявності домену AD.

.