Die Zertifizierungsstellen-Webregistrierung (CAWE) für die Verwendung mit einem Group Managed Service Account (gMSA) konfigurieren

Aus Sicherheitsgründen kann es sinnvoll sein, den CAWE statt mit einem normalen Domänenkonto lieber mit einem Group Managed Service Account (gMSA) zu betreiben. Diese Option bietet den charmanten Vorteil, dass das Passwort des Kontos automatisch geändert wird, und dieser Schritt somit nicht von Hand vorgenommen werden muss, was leider viel zu oft vergessen wird.

Die Zertifizierungsstellen-Webregistrierung ist eine sehr alte Funktion aus Windows 2000 Zeiten – und wurde zuletzt mit dem Release von Windows Server 2003 angepasst. Entsprechend alt und potentiell unsicher ist der Code. Ebenso unterstützt die Funktion keine Zertifikatvorlagen mit Version 3 oder neuer – damit sind keine Zertifikatvorlagen nutzbar, welche Funktionen verwenden, die mit Windows Vista / Windows Server 2008 oder neuer eingeführt wurden. Es wird empfohlen, die Zertifizierungsstellen-Webregistrierung nicht einzusetzen und stattdessen eine Beantragung der Zertifikate über Bordmittel oder das PSCertificateEnrollment PowerShell Modul vorzunehmen.

Wurde der CAWE nach der Anleitung im Artikel "Installieren der Zertifizierungsstellen-Webregistrierung (CAWE)" installiert, läuft der Dienst nach der Installation mit der Identität des Anwendungspools.

Voraussetzungen für den gMSA für die CAWE

Der gMSA für die CAWE…

  • muss Mitglied der lokalen Gruppe der IIS_IUSRS sein.
  • benötigt einen Dienstprinzipalnamen (Service Principal Name, SPN), der je nach Konfiguration dem vollqualifizierten Servernamen oder dem zu verwendenden Alias entsprechen muss.
  • benötigt eine Kerberos Delegierung auf die Zertifizierungsstelle.

Parameter für die nachfolgende Anleitung

Die nachfolgende Anleitung basiert auf den folgende Parametern, die entsprechend an die eigene Umgebung angepasst werden müssen.

  • Der gMSA hat den Namen gMSA_CAWE.
  • Der CAWE Server hat den Namen CAWE01.intra.adcslabor.de.
  • Die verbundene Zertifizierungsstelle lauft auf dem Server CA03.intra.adcslabor.de.
  • Der Alias lautet getcerts.adcslabor.de, welcher entsprechend vorab im Doain Name System (DNS) registriert wurde
  • Für den gMSA_CAWE wird eine eingeschränkte Delegierung mit Protokollübergang konfiguriert, um neben Kerberos auch andere Anmeldemethoden zu unterstützen.

Erstellen des gMSA für das Certificate Authority Web Enrollment

Der gMSA für CEP kann mit folgendem PowerShell Befehl angelegt werden, sofern ein KDS Root Key in der Active Directory Gesamtstruktur erzeugt wurde:

New-ADServiceAccount -Name gMSA_CAWE -PrincipalsAllowedToRetrieveManagedPassword CAWE01$ -DNSHostName gMSA_CAWE.intra.adcslabor.de

Die angegebenen Argumente bedeuten hierbei folgendes:

  • Das Name Argument gibt den Namen des gMSA an.
  • Das PrincipalsAllowedToRetrieveManagedPassword gibt den Server an, welcher das Passwort des Dienstkontos abrufen darf.
  • Das DNSHostName Argument gibt den Inhalt des dNSHostName Attributs des Kontos an, da ein gMSA technisch betrachtet wie ein Computerkonto funktioniert.

Konfigurieren des Dienstprinzipalnamens (Service Principal Name, SPN) für den gMSA

Mit folgendem Befehl wird der Dienstprinzipalname (SPN) für den gMSA erzeugt.

setspn -S HTTP/getcerts.adcslabor.de INTRA\gMSA_CAWE$

Konfigurieren der Delegierungseinstellungen für den gMSA

Für Group managed Service Accounts ist es leider nicht möglich, die Delegierungseinstellungen per graphischer Oberfläche zu konfigurieren. Die Konfiguration muss per Windows PowerShell erfolgen.

Folgende Einstellungen werden vorgenommen:

  • Eingeschränkte Delegierung zur Zertifizierungsstelle CA03.intra.adcslabor.de mit Protokollübergang (Protocol Transition, Option "Use any authentication protocol") für die Protokolle "HOST" und "rpcss". Der Protokollübergang ist erforderlich, damit auch andere Authentifizierungsmethoden neben Kerberos verwendet werden können, beispielsweise wenn man sich von einem nicht-Windows-System oder einem Windows System außerhalb der Active Directory Gesamtstruktur am CAWE authentifizieren möchte.

Zunächst wird ein Array aus den Delegierungszielen und Diensten erzeugt.

$AllowedToDelegateTo = @(
"rpcss/CA03",
"rpcss/CA03.intra.adcslabor.de",
"HOST/CA03",
"HOST/CA03.intra.adcslabor.de"
)

Anschließend werden die Delegierungsziele auf den gMSA angewendet.

Get-ADServiceAccount -Identity gMSA_CAWE | Set-ADObject -Add @{"msDS-AllowedToDelegateTo"=$AllowedToDelegateTo}

Zuletzt werden durch den nachfolgenden Befehl die Delegierungseinstellungen für den gMSA von "Use Kerberos only" zu "Use any authentication protocol" verändert.

Get-ADServiceAccount -Identity gMSA_CAWE | Set-ADAccountControl -TrustedToAuthForDelegation $True 

Installieren des gMSA auf dem CAWE Server

Zunächst müssen die Active Directory Managementwerkzeuge für PowerShell auf dem CAWE Server installiert werden.

Add-WindowsFeature RSAT-AD-PowerShell  

Anschließend kann das Dienstkonto mit folgendem PowerShell Befehl auf dem Server installiert werden.

Install-ADServiceAccount gMSA_CAWE

Der Befehl liefert nichts zurück, wenn er erfolgreich war.

Ob das wirklich der Fall ist, kann man mit folgendem Kommandozeilenbefehl überprüfen.

Test-ADServiceAccount gMSA_CAWE

Dieser Befehl liefert True zurück, wenn der gMSA erfolgreich installiert wurde.

gMSA in die IIS_IUSRS Gruppe auf dem CAWE Server aufnehmen

Der eingerichtete gMSA muss nun noch in die lokale Sicherheitsgruppe IIS_IUSRS aufgenommen werden, damit er vom CAWE verwendet werden kann. Dies kann über die Managementkonsole für lokale Benutzer (lusrmgr.msc) erfolgen.

Konfigurieren des gMSA im CAWE-Anwendungspool

Damit der CAWE Dienst mit dem installierten gMSA arbeitet, muss dieser im DefaultAppPool-Anwendungspool in der Internet Information Server (IIS) Managementkonsole konfiguriert werden. Hierzu wird mit rechts auf den DefaultAppPool-Anwendungspool geklickt und die Option "Advanced Settings…" gewählt.

Bei der Option "Identity" klickt man auf der rechten Seite auf den "…" Button.

Im nachfolgenden Dialog wählt man "Custom account" und klickt auf "Set…".

Bei der Angabe der Identität im folgenden Dialog sind einige Besonderheiten zu beachten:

  • Der Domänenname muss zwingend angegeben werden.
  • Da ein gMSA ähnlich wie ein Computerkonto arbeitet, muss am Ende des Kontennanems ein Dollarzeichen angegeben werden.
  • Bei einem gMSA wird kein Passwort angegeben, die beiden Felder müssen also leer bleiben.

Neustart des Web Server Dienstes

Der Web Server Dienst wird anschließend mit dem iisreset Befehl neu gestartet.

Weiterführende Links:

Externe Quellen