모든 도메인 컨트롤러에 대해 Active Directory 제한 위임을 설정하는 쉬운 방법이 있습니까?

모든 도메인 컨트롤러에 대해 Active Directory 제한 위임을 설정하는 쉬운 방법이 있습니까?

우리는 도메인의 서비스 계정에 대한 AD 제한 위임 구성을 통해 작업했으며 원칙적으로 모든 것이 작동하도록 했습니다. 그러나 이를 위해서는 특정 도메인 컨트롤러에 대한 LDAP 위임을 설정해야 했습니다. 이러한 접근 방식의 단점은 새 DC를 도입하는 경우 새 DC를 포함하도록 위임을 업데이트하지 못하면 서비스 중단이 발생할 수 있다는 것입니다. 도메인의 모든 DC에 위임할 수 있는 방법이 있습니까, 아니면 한 번에 하나만 위임할 수 있습니까?

답변1

모든 경우에 Kerberos 위임 구성은 민감한 작업이므로 신뢰할 수 있는 관리자가 수동으로 신중하게 수행해야 합니다. SPN에는 특정 서비스를 제공하는 컴퓨터의 이름이 포함되어 있으므로 "모든 DC"를 한 번에 지정할 수는 없습니다. 왜냐하면 미래에는 다음 DC의 이름이 어떻게 될지 알 수 없기 때문입니다.

따라서 DC 승격 절차에 SPN 구성 단계를 추가하는 것이 좋습니다.

실제로 Kerberos 제한 위임 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 }
}

메모:이 스크립트는 데모 전용입니다! 그것은테스트되지 않은버그가 포함되어 있을 수 있습니다. 사용하기 전에 LAB에서 테스트해보세요!

다시 한번 말하지만 이는 민감한 작업입니다. 자동화를 선택하는 경우 변조를 방지하기 위해 PowerShell 스크립트에 서명해야 합니다.

관련 정보