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

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

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

решение1

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

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

Фактически, Kerberos Constrained delegate UI заполняет атрибут "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, чтобы предотвратить несанкционированное вмешательство.

Связанный контент