¿Existe una manera sencilla de configurar la delegación restringida de Active Directory para todos los controladores de dominio?

¿Existe una manera sencilla de configurar la delegación restringida de Active Directory para todos los controladores de dominio?

Hemos trabajado en la configuración de la delegación restringida de AD para una cuenta de servicio en nuestro dominio y, en principio, hemos logrado que todo funcione. Sin embargo, para hacerlo tuvimos que configurar la delegación LDAP a controladores de dominio específicos. La desventaja de ese enfoque para nosotros es que si introducimos un nuevo DC, es posible que tengamos una interrupción del servicio si no actualizamos nuestra delegación para incluir el nuevo DC. ¿Hay alguna forma de delegar en alguno o todos los DC del dominio, o solo es posible hacerlo uno a la vez?

Respuesta1

En todos los casos, la configuración de la delegación de Kerberos es una operación delicada y debe realizarse con precaución, manualmente y por parte de un administrador de confianza. Debido a que el SPN contiene el nombre de la computadora que ofrece un servicio particular, no es posible especificar "todos los DC" a la vez. Esto se debe a que no podrá saber en el futuro cuál será el nombre de su próximo DC.

Por lo tanto, sugeriría agregar pasos de configuración de SPN a sus procedimientos para promocionar DC.

De hecho, la interfaz de usuario de delegación restringida de Kerberos completa el atributo "msDS-AllowedToDelegateTo". Entonces sería fácil automatizar la delegación con PowerShell, por ejemplo:

$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 }
}

NOTA:¡Este script es sólo para demostración! Esno probadoy puede contener errores. ¡Pruébalo en LAB antes de usarlo!

Nuevamente, esta es una operación delicada. Si elige la automatización, asegúrese de firmar el script de PowerShell para evitar manipulaciones.

información relacionada