Existe uma maneira fácil de configurar a delegação restrita do Active Directory para todos os controladores de domínio

5

Trabalhamos na configuração da delegação restrita do AD para uma conta de serviço em nosso domínio e obtivemos tudo para funcionar em princípio. No entanto, para isso, tivemos que configurar a delegação LDAP para controladores de domínio específicos. A desvantagem dessa abordagem para nós é que, se introduzirmos um novo CD, poderemos ter uma interrupção no serviço caso não consigamos atualizar nossa delegação para incluir o novo CD. Existe uma maneira de delegar a qualquer / todos os DCs no domínio, ou só é possível fazer um de cada vez?

    
por Abs 21.08.2015 / 18:00

1 resposta

3

Em todos os casos, a configuração de delegação do Kerberos é uma operação confidencial e deve ser executada com cuidado, manualmente e por um administrador confiável. Como o SPN contém o nome do computador que oferece determinado serviço, não é possível especificar "todos os DCs" de uma só vez. Isso porque você não pode saber no futuro qual será o nome do seu próximo CD.

Portanto, sugiro que as etapas de configuração do SPN sejam adicionadas aos seus procedimentos de promoção de DCs.

Na verdade, a interface de usuário de delegação restrita de Kerberos preenche o atributo "msDS-AllowedToDelegateTo". Por isso, seria fácil automatizar a delegação com o PowerShell, por exemplo:

$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 é apenas para demonstração! É não testado e pode conter erros. Teste-o no LAB antes de usá-lo!

Mais uma vez, esta é uma operação delicada. Se escolher a automação, assine o script do PowerShell para evitar adulterações.

    
por 23.08.2015 / 15:27