Назад | Перейти на главную страницу

Есть ли простой способ настроить ограниченное делегирование Active Directory для всех контроллеров домена?

Мы поработали над настройкой ограниченного делегирования AD для учетной записи службы в нашем домене, и у нас есть все, чтобы в принципе работать. Однако для этого нам пришлось настроить делегирование LDAP на определенные контроллеры домена. Обратной стороной такого подхода для нас является то, что если мы введем новый DC, у нас может произойти сбой в обслуживании, если мы не сможем обновить наше делегирование, чтобы включить новый DC. Есть ли способ делегировать полномочия любому / всем DC в домене, или это можно делать только по одному?

Во всех случаях настройка делегирования Kerberos является деликатной операцией и должна выполняться с осторожностью, вручную и доверенным администратором. Поскольку SPN содержит имя компьютера, который предлагает определенную службу, невозможно указать «все контроллеры домена» сразу. Это потому, что вы не можете знать в будущем, как будет называться ваш следующий DC.

Поэтому я предлагаю добавить шаги настройки SPN к вашим процедурам продвижения контроллеров домена.

Фактически пользовательский интерфейс ограниченного делегирования Kerberos заполняет атрибут msDS-AllowedToDelegateTo. Таким образом, было бы легко автоматизировать делегирование с помощью PowerShell, например:

$userWithConstrainedDelegation = "put_username_here" 
$domain = Get-ADDomain
$user = Get-ADUser $userWithConstrainedDelegation -Properties "msDS-AllowedToDelegateTo"

$spns = @()
$spnsToAdd = @()

#// Get all domain controllers in the current domain
Get-ADDomainController -Filter * | % {

    #// Construct SPNs (an example for ldap SPN)
    $spns += "ldap/{0}" -f $_.Name
    $spns += "ldap/{0}" -f $_.HostName
    $spns += "{0}/{1}" -f $s1,$domain.NetBIOSName

    #// Check if SPN should be added
    foreach($service in $spns){
        if ($user.'msDS-AllowedToDelegateTo' -inotcontains $service){
            "ADDING: {0}" -f $service
            $spnsToAdd += $service
        }
    }

    $spns = @()

}

#// Add missing SPNs
if ($spnsToAdd.Count -gt 0){
    Set-ADObject $user -Add @{ "msDS-AllowedToDelegateTo" = $spnsToAdd }
}

НОТА: Этот скрипт предназначен только для демонстрации! это непроверенный и может содержать ошибки. Перед использованием проверьте его в ЛАБОРАТОРИИ!

Опять же, это чувствительная операция. При выборе автоматизации не забудьте подписать сценарий PowerShell, чтобы предотвратить вмешательство.