Главная страница » Делегирование административных полномочий в Active Directory

Делегирование административных полномочий в Active Directory

by admin

В этой статье мы рассмотрим особенности делегирования полномочий в домене Active Directory. Делегирование позволяет предоставить право на выполнение некоторых задач управления AD обычным пользователям домена, не включая их в привилегированные доменные группы, такие как Domain Admins, Account Operators и т.д.. Например, с помощью делегирования вы можете предоставить определённой группе пользователей (допустим, Helpdesk) право на добавление пользователей в группы, заведение новых пользователей в AD и сброс пароля.

Особенности делегирования прав в Active Directory

Для делегирования прав в AD используется мастер Delegation of Control Wizard в графической оснастке Active Directory Users and Computers (DSA.msc).

Административные права в AD можно делегировать на довольно детальном уровне. Одной группе можно предоставить право на сброс пароля в OU, другой – на создание и удаление аккаунтов, третьей на сброс пароля. Можно настроить наследование разрешений на вложенные OU. Вы можете делегировать права в AD на четырех уровнях:

  1. Сайта AD;
  2. Всего домена;
  3. Конкретной OU в Active Directory;
  4. Конкретного объекта AD.

Несколько рекомендаций по правильному использованию делегирования администраивных полномочий в AD:

  • Не рекомендуется делегировать разрешения непосредственно для кокретных учетных записей пользователей. Вместо этого создайте в AD новую группу безопасности, добавьте в нее пользователя и делегируйте полномочия на OU для этой группы. Если вам понадобится предоставить такие же права в домене еще одному пользователю, вам будет достаточно добавить его в группу безопасности;
  • Старайтесь не использовать запрещающих разрешений, т.к. они имеют приоритет над разрешающими;
  • Периодически выполняйте аудит делегированных полномочий в домене (отчет с текущими списками разрешений на OU можно сгенерировать с помощью PowerShell).
  • Не делегируйте права на управление OU с административными аккаунтами. Иначе легко может произойти ситуация, когда любой сотрудник службы поддержки может сбросить пароль администратора домена. Все чувствительные пользователи и группы с повышенными привилегиями нужно размещать в отдельной OU, на которую не распространяется правила делегирования.

Делегирование прав на создание учетных записей и создаем груп безопасности.

Представим, наша задача – предоставить группе HelpDesk право на сброс пароля и разблокировку аккаунтов пользователей в домене. Создадим новую группу

Запустите консоль Active Directory Users and Computers (ADUC), щелкните ПКМ по OU с пользователями (в нашем примере это ‘OU=Users,OU=Moscow,OU=RU,DC=corp,DC=local’) и выберите пункт меню Delegate Control.

Выберите группу, которой вы хотите предоставить административные полномочия.

Если вы хотите предоставить право на создание и удаление пользователей в этом OU и создание груп, выберите опции Create, delete, and manage user accounts | Create, delete, and manage groups

Поиск делегированных груп

Если ранее кто то уже создавал такие группы мы можем их найти через powershell

Поиск делегированных груп

Import-Module ActiveDirectory

# Ваш домен
$domainNetbios = "CORP"          # NetBIOS
$rootDN        = "DC=corp,DC=local"

# Берём только OUs, где обычно делегируют
$rootDE  = New-Object System.DirectoryServices.DirectoryEntry("LDAP://$rootDN")
$search  = New-Object System.DirectoryServices.DirectorySearcher($rootDE)
$search.Filter   = "(objectClass=organizationalUnit)"
$search.PageSize = 1000

$results = @()

foreach ($res in $search.FindAll()) {
    $obj  = $res.GetDirectoryEntry()
    $acls = $obj.PsBase.ObjectSecurity.GetAccessRules($true,$false,[Security.Principal.NTAccount])

    foreach ($acl in $acls) {
        $acc = $acl.IdentityReference.Value

        # 1) только ваш домен
        if ($acc -notlike "$domainNetbios\*") { continue }

        # 2) выкидываем стандартные админские
        if ($acc -like "$domainNetbios\Domain Admins"      -or
            $acc -like "$domainNetbios\Enterprise Admins" -or
            $acc -like "$domainNetbios\Schema Admins"     -or
            $acc -like "$domainNetbios\Enterprise Read-only Domain Controllers") { continue }

        # 3) только неунаследованные (чисто вручную делегированные)
        if ($acl.IsInherited) { continue }

        $results += [pscustomobject]@{
            ObjectDN    = $obj.distinguishedName
            Account     = $acc
            Rights      = $acl.ActiveDirectoryRights
        }
    }
}

$results | Sort-Object ObjectDN,Account | Out-GridView

You may also like

Leave a Comment