Технологія Dynamic Access Control в Windows Server 2012 (частина 2).

В попередній статті ми розглянули теоретичні аспекти технології Dynamic Access Control. Настав час перейти до практики, тому сьогодні ми розглянемо настройку динамічного контролю доступу для обмеження доступу до файлового ресурсу.

Перед розгортанням Dynamic Access Control в організації необхідно врахувати деякі вимоги.

Доменні служби Active Directory

В першу чергу для Dynamic Access Control обов'язкова наявність домена Active Directory. Функціональний рівень домену не впливає на можливість використання DAC, хоча від нього і залежать деякі нюанси, про які я розповім трохи пізніше.

Контролери домену

Якщо в домені включена підтримка тверджень, то при аутентифікації клієнт, їх підтримує, шукає домен-контролер, який йому ці твердження надасть.Тому необхідна наявність в домені хоча б одного доступного домен-контроллера Windows Server 2012.

Також варто мати на увазі, що клієнт здійснює пошук «правильного» контролера домену шляхом послідовного перебору наявних контролерів, до тих пір поки не знайде потрібний.Якщо в організації недостатня кількість контролерів Windows Server 2012, то пошук може зайняти певний час, через що неминуче збільшиться затримка при вході користувача в систему. Цей момент треба враховувати при плануванні DAC в організації.

І окремо варто згадати про домен-контролерах тільки для читання (RODC).Хоча RODC Windows Server 2012 і підтримують твердження, проте всі запити на аутентифікацію з їх використанням пересилають на повноцінний контролер домену Windows Server 2012.

Файловий сервер

Застосовувати твердження можна тільки до файлів, що зберігаються на файлових серверах Windows Server 2012.

При підключенні до файлового ресурсу файл-сервер виконує авторизацію користувача за допомогою вхідних даних, і на підставі цих даних визначає доступ до ресурсу. При цьому сервер повинен вважати затвердження користувача і пристрою з квитка Kerberos, перевести їх в маркер доступу і порівняти отримані дані авторизації з умовними виразами, що містяться в дескрипторі безпеки об'єкту.

Це означає, що компоненти файл-сервера, такі як локальна система безпеки (LSA) і клієнт Kerberos, повинні підтримувати затвердження. Тому наявність файлового сервера Windows Server 2012 - ще одна обов'язкова вимога для розгортання DAC.

Клієнтський комп'ютер

З клієнтських операційних систем затвердження підтримує поки тільки Windows 8.Однак це зовсім не означає, що DAC можна використовувати з більш ранніми операційними системами, наприклад Windows 7 або XP.

В тому випадку, якщо клієнт, який не підтримує твердження, намагається отримати доступ до файлового ресурсу з підтримкою тверджень, файловий сервер може сам звернутися до служби KDC і від свого імені запросити для клієнта необхідну інформацію.Ця технологія називається S4UToSelf (Service-for-User-To-Self) і є розширенням протоколу Kerberos.

Таким чином, для того щоб почати використання тверджень, зовсім не обов'язково, щоб всі робочі станції їх підтримували. Виняток становить випадок, коли для доступу до ресурсів використовуються затвердження для пристроїв, в цьому випадку використання Windows 8 обов'язково.

Включення підтримки тверджень

Перш ніж приступати до налаштування, нам треба включити підтримку тверджень для клієнтів і контролерів домену. За ці настройки відповідають дві нові групові політики.

Щоб активувати підтримку нових можливостей на контролерах домену, треба відкрити Default Domain Controllers Policy, в розділі Computer configuration \ Policies \ Administrative Templates \ System \ KDC вибрати параметр «KDC support for claims, compound authentication and Kerberos armoring »і поставити перемикач в положення Enabled.Після цього треба вибрати одне з чотирьох значень:

• Not Supported (Не підтримується) - значення за замовчуванням, при якому контролери домену не оголошують про те, що домен підтримує твердження, комплексні посвідчення і технологія FAST. Те ж саме діяння проводиться прі не сконфигурированной (Not Configured) або виключеною (Disabled) політиці;
• Supported (Підтримується) - при виборі цього значення все контролери домену інформують клієнтів про підтримку тверджень, комплексних посвідчень і технології FAST.Це значення вважається універсальним і не залежить від рівня функціонування домена;

Наступні значення працюють тільки при функціональному рівні домену Widnows Server 2012. Якщо рівень домену нижче, то ці параметри будуть проігноровані і політика відпрацює як при значенні Supported:

• Always provide claims (завжди підтримувати затвердження) - при цьому значенні KDC буде завжди надавати затвердження для клієнтів (які це підтримують) незалежно від їх налаштувань;
• Fail unarmored authentication request (Відхилити незахищені запити на перевірку справжності) - в цьому випадку контролери домену в обов'язковому порядку будуть вимагати захищеного з'єднання для аутентифікації користувача.При цьому всі клієнти, які не підтримують технологію FAST, не зможуть аутентифицироваться в домені.



І для включення підтримки тверджень клієнтами треба відкрити Default Domain Policy, перейти в розділ Computer configuration \ Policies \ Administrative Templates \ System \ Kerberos і відкрити параметр «Kerberos client support for claims, compound authentication and Kerberos armoring».Тут всього два значення - включено (Enabled) або відключено (Disabled). Включення цієї політики означає, що ті клієнти, які це підтримують, будуть при аутентифікації в домені запитувати Клайм і використовувати технологію FAST.



планування

Налаштування DAC проводиться з оснащення Active Directory Administrative Center.Відкрити її можна з меню Tools в Server Manager, або командою dsac. Всі кроки по налаштуванню по пунктам розписані прямо на головній сторінці Administrative Center.



Перше, що нам потрібно зробити, це поставити задачу і визначитися з тим, за якою ознакою ми будемо призначати дозволу.Припустимо, що у мене є файловий ресурс, на який я хочу дати доступ тільки тим співробітникам, які відповідають наступним критеріям:

1) Знаходяться в м Москва;
2) Працюють в центральному офісі компанії ;
3) Належать до відділу управління або продажу.

Відкриваємо властивості користувача, переходимо в розділ Organization і знаходимо відповідні атрибути.Отже, наше завдання дати доступ тим користувачам, у яких атрибут Sity має значення Moscow, атрибут Office має значення Central, а атрибут Department може мати значення Management або Sales.



Створення тверджень

Визначившись з критеріями відбору, йдемо створювати затвердження для користувачів.Перемикаємо режим перегляду «Tree View», відкриваємо розділ Dynamic Access Control і переходимо до підрозділу Claim Type (Типи тверджень). Натискаємо правою клавішею миші в поле і в меню вибираємо пункт New - Claim Type.



Оскільки твердження базуються на атрибутах користувача (або комп'ютера), то нам потрібно вибрати в полі Source Attribute (Атрибут джерела) необхідні атрибути.Зверніть увагу, що атрибути користувача, показані в графічній оснащенні, не завжди співпадають з назвами атрибутів схеми AD. Подивитися їх відповідність можна на сторінці User Object User Interface Mapping на сайті MSDN. Для нашого випадку я вибрав наступні атрибути:

l - Sity
phisicalDeliveryOfficeName - Office
department - Department

В полі «Display Name» для кожного твердження вводимо зрозуміле назва, під яким воно буде відображатися в списку тверджень, а в поле «Description» можна додати його опис.

Також є деякі додаткові опції, про які варто згадати:

• Claims of this type can be issued for the following class - визначає, до якого типу об'єктів відноситься даний тип твердження: тільки до користувачів (User), тільки для комп'ютерів (Computer), або до обох типів облікових записів.
• Set ID to a semanticaly identical claim type in a trusted forest - опція, призначена для визначення методу створення ідентифікатора типу затвердження. Якщо не встановлювати прапор, то ідентифікатор буде призначений автоматично. Формується він у такий спосіб: стандартний початок ідентифікатора ad: // ext, потім ім'я обраного атрибута і після двокрапки випадкове число в шістнадцятковому форматі.В результаті виходить щось на зразок цього: ad: // ext/Department: 88d068e84e256c9f.
Якщо ви створюєте затвердження для різних лісів, пов'язаних довірчими стосунками, то за замовчуванням метадані для кожного типу тверджень будуть створені унікальними для кожного лісу, в наслідок чого контролери домену довіряє лісу не зможуть обробити затвердження з довіреної лісу.В цьому випадку і потрібен цей параметр. Однак створюючи ідентифікатор вручну пам'ятайте, що він повинен відповідати зазначеному формату - мати стандартний початок, складатися з не більше ніж 32 символів, не містити в назві спец. символів і не закінчуватися зворотним слешем.Крім того, такі ідентифікатори обов'язково повинні бути унікальними.
• Protect from accidental deletion - служить для захисту затвердження від випадкового видалення. Прапор цей стоїть за умовчанням, і для того щоб видалити будь-яке твердження його треба попередньо зняти.



Перейшовши в секцію під назвою Suggested Values ​​(Запропоновані значення), ми можемо для затвердження задати набір визначених значень.За замовчуванням для всіх типів тверджень значення не визначені, тобто передбачається, що ці значення будуть задаватися вручну при створенні умовних виразів. Однак є можливість змінити подібну поведінку, для чого треба вибрати твердження, включити для нього опцію «The following value are suggested» і за допомогою кнопки Add додати необхідні значення.

Як бачите, в нашому випадку я взяв твердження Department і поставив для нього два зумовлених значення: Management і Sales.



Додавання значень відбувається наступним чином: при натисканні кнопки Add відкривається вікно, в якому треба ввести значення (Value), ім'я (Display Name) і опис (Description) для кожного визначеного значення.



Отже, в результаті у нас вийшло три твердження - Department, Office і Sity. При необхідності ми можемо відредагувати їх, видалити (попередньо знявши захист) або відключити. Відключене твердження так і залишиться з усіма своїми настройками, але використовувати його ми не зможемо.Всі новостворені затвердження включені за замовчуванням, відключити їх можна, клікнувши правою клавішею миші і вибравши з контекстного меню пункт Disable.



І кілька слів про PowerShell. Якщо ви розкриєте секцію Windows PowerShell History, приховану внизу, то знайдете все команди PowerShell, за допомогою яких проводилися операції з Клайм.Їх можна скопіювати і використовувати при написанні скриптів.



Створення властивостей ресурсів

Переходимо розділ Resource Properties і приступаємо до створення властивостей ресурсів. Тут вже є деяка кількість готових властивостей. За умовчанням вони не активні, для їх включення треба вибрати потрібну властивість і в поле Tasks натиснути «Enable».Однак ми не шукаємо легких шляхів, тому не будемо використовувати готові властивості, а створимо свої. Для цього в поле Tasks вибираємо пункт New - Resource Property.



Даємо назву властивості, потім вибираємо тип даних (Value Type), який це властивість може приймати. В якості типу можна вказати:

• Single-valued Choice - властивість може приймати одне єдине значення;
• Multi-valued Choice - властивість може приймати різні значення;
• Ordered List - властивість може приймати значення з упорядкованого списку;
• Number - властивість може приймати числове значення;
• Text - властивість може приймати текстове значення;
• Multi-Valued Text - властивість може приймати одне з декількох текстових значень;
• Date Time - властивість представляє з себе дату і час.Цей тип можна використовувати для обмеження доступу до ресурсу;
• Yes \ No - властивість представляє з себе логічне значення типу True або False.

Додаткові опції:

• Set ID to a semanticaly identical claim type in a trusted forest - так само як і для Клайм, ця опція відповідає за визначення методу створення ідентифікатора, автоматично або вручну;
• Is used for autorization - визначає, чи буде ця властивість використовуватися в умовних виразах для обмеження доступу до ресурсів.Для кожного створюваного властивості об'єкта (крім властивостей типу Date Time) включена за замовчуванням;
• Protect from accidental deletion - захист від випадкового видалення. Прапор цей стоїть за умовчанням, і щоб видалити властивість ресурсу, попередньо треба його зняти.

Якщо в якості типу властивості ресурсу вибрано Single-Valued Choice, Multi-Valued Choice або Ordered List, то для них можна вказати зумовлені значення.Для цього треба в поле Suggested Values ​​натиснути кнопку Add і у вікні, ввести ім'я і значення.

Для нашого прикладу створимо дві властивості - Sity і Office. Зазначимо для Sity зумовлене значення Moscow, а для Office значення Central.



Вибравши в меню пункт Reference Resource Properties, можна створити властивості ресурсів посилального типу.Ці властивості базуються на готових твердженнях, що мають зумовлені властивості. На попередньому етапі ми якраз створили одне таке твердження на ім'я Department. Тепер виберемо його зі списку, можна порівняти зі створюваним властивістю ресурсу і назвемо це властивість Departments.



Властивості ресурсів об'єднаного в списки властивостей (Resource Property Lists).За замовчуванням всі властивості, як готові, так і новостворені, поміщаються в один глобальний список. У такому вигляді ними не дуже зручно управляти (на мій погляд), тому створимо свій список і помістити в нього тільки потрібні нам властивості. Переходимо на вкладку Resource Property Lists, натискаємо мишкою і вибираємо пункт New - Resource Property Lists.



обізву наш список Managenent and Sales Documents, щоб було зрозуміло для чого він призначений. Потім тиснемо на кнопку Add і додаємо в список потрібних властивостей ресурсів.



Для того, щоб додати потрібні властивості, в лівій частині вікна вибираємо їх і стрілочкою перемещаем направо.Вибравши все, тиснемо ОК.



Класифікація файлів

Отже, ми створили необхідні якості об'єктів і об'єднали їх в список. Тепер застосуємо цей список до файлового серверу, тобто зробимо класифікацію файлів. Переходимо на файловий сервер, запускаємо консоль PowerShell і оновлюємо класифікацію файлів на сервері командою:

Update-FSRMClassificationPropertyDefinition

Потім відкриваємо властивості папки і переходимо на вкладку Classifications, де повинні з'явитися задані нами властивості.Застосуємо ці властивості до папки - в поле Name вибираємо назву властивості, потім в поле Value його значення.



Якщо значень кілька, то вибираємо їх зі списку, зазначивши потрібні поля галочкою.



Створення правил доступу

Зробивши класифікацію, повертаємося на контролер домену.Тепер нам треба створити правила доступу до об'єктів, або Central Access Rule. Переходимо в розділ Central Access Rule, натискаємо правою клавішею в порожньому полі і вибираємо пункт New - Central Access Rule.



в полі Name вказуємо ім'я створюваного правила, додатково в поле Description можна додати його опис.Потім опускаємося в розділ Target Resources і тиснемо кнопку Add.



Тут ми з допомогою умовних виразів повинні описати властивості ресурсів, до яких будемо обмежувати доступ. Для цього в лівій частині вибираємо властивість ресурсу, в правій вказуємо необхідне значення, а між ними ставимо логічний оператор.Наприклад, властивість ресурсу (Resource) Sity еквівалентно (Equals) значенням (Value) Moscow.

Значення властивостей вибираються зі списку (якщо для них були задані зумовлені значення), або просто вводяться вручну. Якщо властивість може приймати кілька значень (Multi-valued Choice), то зазначаються всі можливі значення.

Правило може складатися з декількох умов, об'єднаних операторами І (And) і АБО (Or). Крім того, можна натиснути на кнопку «Manage grouping», відзначити 2 або більше умов і згрупувати їх в одне велике умовний вираз. При угрупованню потрібно враховувати, що умови повинні йти один за іншим, тобто маючи 3 умови можна згрупувати між собою умови 1 і 2 або 2 і 3, але не можна групувати умови 1 і 3.

В прикладі (на малюнку нижче) я вказав, що створюване правило буде обмежувати доступ до файлів, у яких властивість Sity має значення Moscow, властивість Office - значення Central, а властивість Department - значення Management або Sales.