
Trabalhamos na configuração da delegação restrita do AD para uma conta de serviço em nosso domínio e fizemos com que tudo funcionasse 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 DC, poderemos ter uma interrupção do serviço se não atualizarmos nossa delegação para incluir o novo DC. Existe uma maneira de delegar a qualquer/todos os controladores de domínio do domínio ou só é possível fazer um de cada vez?
Responder1
Em todos os casos, a configuração da delegação Kerberos é uma operação sensível e deve ser feita com cuidado, manualmente e por um administrador confiável. Como o SPN contém o nome do computador que oferece um serviço específico, 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 para promover DCs.
Na verdade, a UI de delegação restrita do Kerberos preenche o atributo "msDS-AllowedToDelegateTo". Portanto, 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 }
}
OBSERVAÇÃO:Este script é apenas para demonstração! Isso énão testadoe pode conter bugs. Teste-o no LAB antes de usá-lo!
Novamente, esta é uma operação sensível. Se escolher a automação, certifique-se de assinar o script do PowerShell para evitar adulterações.