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

Налаштування тимчасових повноважень в Active Directory.

Найчастіше права доступу в Active Directory потрібно надати тимчасово, на певний термін. Для того, щоб уникнути необхідності контролювати термін дії виданих повноважень, їх можна створювати спочатку тимчасовими. Для створення тимчасових повноважень в AD є спеціальні механізми, про які й піде мова в статті.

Почнемо з динамічних об'єктів.

Динамічні об'єкти

Починаючи з Windows Server 2003 служби Active Directory підтримують створення динамічних записів. Динамічна запис представляє з себе об'єкт, одним з властивостей якого є час життя (time-to-live, TTL). Термін життя об'єкта встановлюється при його створенні і потім автоматично зменшується, а після закінчення терміну об'єкт автоматично видаляється.

Ця властивість динамічних об'єктів можна використовувати для призначення тимчасових повноважень. Наприклад, можна створити групу безпеки з певним TTL і видати їй необхідні права, а потім додати в групу користувачів. Як тільки TTL підійде до кінця - група зникне, а користувачі автоматично втратять видані повноваження.

Створити таку "тимчасову" групу можна виключно з командного рядка, так як графічні оснащення типу ADUC, ADSIEdit або LDP не вміють працювати з динамічними об'єктами. Найпростіше скористатися утилітою командного рядка ldifde. Для цього спочатку створюємо текстовий файл з розширенням ldf і додаємо в нього наступні рядки:

dn: cn = Temp, cn = Users, dc = domain, dc = local
changeType: add
objectClass: group
objectClass: dynamicObject
entryTTL: 900
SAMAccountName: Temp

Потім відкриваємо консоль cmd і виконуємо команду:

ldifde -i -f C: \ temp \ dynamic.ldf



В результаті в контейнері Users створиться група Temp з часом життя 15 хвилин (900 сек) . Час життя групи зберігається в атрибуті entryTTL і при необхідності його можна змінити, наприклад збільшити або зменшити. Після закінчення заданого часу група просто зникне.



При бажанні можна створити динамічний об'єкт і за допомогою PowerShell. Стандартні командлети AD не вміють працювати з динамічними об'єктами, тому доведеться використовувати ADSI. Процедура створення групи за допомогою PowerShell буде виглядати приблизно так:

$ OU = [adsi] "LDAP: // cn = users, DC = domain, DC = local"
$ Group = $ OU .Create ( "group", "cn = Temp")
$ Group.PutEx (2, "objectClass", @ ( "dynamicObject", "group"))
$ Group.Put ( "entryTTL" , "900")
$ Group.SetInfo ()



Примітка. У атрибута entryTTL є два значення за замовчуванням. Перше значення дорівнює 86400 секунд (1 день). Атрибут entryTTL приймає це значення в тому випадку, якщо об'єкт був створений без явної вказівки часу життя.Друге значення дорівнює 900 секунд (15 хвилин). Це мінімальне значення, яке може приймати entryTTL. Якщо вказати час життя менше, то об'єкт створиться без помилок, але entryTTL буде дорівнює 900.

Більш детальну інформацію про динамічні об'єктах можна знайти на MSDN, а ми переходимо до наступного пункту.

Тимчасове членство в групах

Тимчасове членство в групах (Temporary Group Membership) - це нова фіча, що з'явилася в Windows Server 2016 і є частиною функціоналу з управління привілейованим доступом (Privileged Access Management, PAM). За замовчуванням PAM не активний і перше, що потрібно зробити - це включити його.Зробити це можна за допомогою PowerShell командлет Enable-ADOptionalFeature, наприклад:

Enable-ADOptionalFeature -Identity "Privileged Access Management Feature" -Scope ForestOrConfigurationSet -Target "domain.local"

Зверніть увагу , що активація PAM є незворотною, відключити його неможливо. Перевірити результат можна командою:

Get-ADOptionalFeature -Filter {Name -like "Privileged *"}



Після включення PAM у командлет Add-ADGroupMember з'являється параметр MemberTimeToLive, за допомогою якого можна задавати час членства в групі.Для прикладу додамо користувача TempAdmin в групу Domain Admins на 10 хвилин:

$ TTL = New-TimeSpan -Minutes 10
Add-ADGroupMember -Identity "Domain Admins" -Members TempAdmin -MemberTimeToLive $ TTL

Потім перевіримо складу групи командою:

Get-ADGroup -Identity "Domain Admins" -Properties Member -ShowMemberTimeToLive

Як бачите, TempAdmin входить в групу Domain Admins, а його TTL становить 600 секунд.Після закінчення цього часу перевіримо групу ще раз і переконаємося в тому, що він видалений з групи.



Примітка. При закінченні TTL закінчується і термін дії квитка Kerberos користувача, оскільки для користувачів з тимчасовим членством в групах AD видається квиток з терміном життя, рівним меншій з решти значень TTL.

На закінчення скажу, що, на мій погляд, функціонал тимчасового членства в групах більш зручний у використанні, ніж динамічні об'єкти. Однак для його роботи необхідний контролер домену Windows Server 2016, а також потрібно рівень лісу не нижче Server 2016, тоді як підтримка динамічних об'єктів з'явилася ще в Windows Server 2003.У будь-якому випадку обидва способи успішно вирішують проблему надання тимчасового доступу, а який з них використовувати - вирішуйте самі.

.