Project Honolulu – Constrained Delegation

Project Honulu ist seit kurzem in der TechPreview erhältlich. Wer bis jetzt noch nichts von Honolulu gehört hat – hier die Kurzform:
Bei Project Honululu handelt es sich um eine webbasierte Verwaltungsoberfläche für Windows Server, die vor allem das Management von Core Installationen vereinfachen soll, die ja bei Microsoft seit Windows 2012 R2 und auch ganz im speziellen bei Windows Server 2016 die von Microsoft präferierte Installationsvariante sind. Aber gerade kleinere und mittelständische Unternehmen haben sich bis jetzt oftmals schwer getan mit der Core Variante – das könnte sich mit Honolulu durchaus ändern. Wer in die Tiefen davon einsteigen möchte, dem sei der offizielle Blog Artikel zum Launch unter Project “Honolulu” technical preview is now available for download! empfohlen.

Die Installation ist an sich straight Forward – außer bei den Zertifikaten gibt es einen kleinen Stolperstein durch einen “Bug” in der MMC, der unsichtbare Zeichen mit kopiert, hier hilft den Thumbprint des Zertifikates einmal in Notepad zu kopieren, anschließend das erste Zeichen zu löschen und von Hand wieder einzutippen. Details dazu finden sich in der MS KB unter Certificate thumbprint displayed in MMC certificate snap-in has extra invisible unicode character.

Aber darauf will ich eigentlich in diesem Blogpost gar nicht hinaus, sondern mich eigentlich dem Thema Constrained Delegation widmen. Constrained Delegation ist ein neues Feature, welches es im AD seit Windows Server 2012 R2 gibt. Wer sich schon mal mit SPN’s “herumgeschlagen” hat, wird sich freuen – durch Constrained Delegation wird das ganze durchaus handlicher. Bei Honolulu wird Constrained Delegation unterstützt um nach dem initialen Anmelden den Zugriff auf die verwalteten Server per SSO zu ermöglichen, andernfalls sind bei jedem Aufruf nochmals Anmelde Daten einzugeben.

Ich habe mir dazu ein kleines PowerShell Script gebaut, welches den Honolulu Server bei allen AD Computern entsprechend per Constrained Delegation einrichtet. Dieses sieht wie folgt aus:

# $Gateway = Honolulu Management Server 

$gateway = "SRVMGMT01"
$nodes = Get-ADComputer -Filter *

ForEach ($node in $nodes) {

    $gatewayObject = Get-ADComputer -Identity $gateway
    $nodeObject = Get-ADComputer -Identity $node
    Set-ADComputer -Identity $nodeObject.Name -PrincipalsAllowedToDelegateToAccount $gatewayObject
    Write-Host "Setzen der Kerberos Resource Delagation auf " $nodeObject.Name

}

Der Parameter -Filter bei der $nodes Variable sitzt bei mir aktuell auf *, d.h. es werden alle Computer Objekte gefunden (für meine LAB Umgebung reicht das völlig).
In produktiven Umgebungen macht ein Filter bsp. auf die Server OU o.ä. durchaus Sinn.