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
Kennen Sie TameMyCerts? TameMyCerts ist ein Add-On für die Microsoft Zertifizierungsstelle (Active Directory Certificate Services). Es erweitert die Funktion der Zertifizierungsstelle und ermöglicht die Anwendung von Regelwerken, um die sichere Automatisierung von Zertifikat-Ausstellungen zu realisieren. TameMyCerts ist einzigartig im Microsoft-Ökosystem, hat sich bereits in unzähligen Unternehmen auf der ganzen Welt bewährt und steht unter einer freien Lizenz. Es kann über GitHub heruntergeladen und kostenlos verwendet werden. Professionelle Wartung wird ebenfalls angeboten.
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}
Zusätzlich muss noch die Option "Account is sensitive and cannot not be delegated" deaktiviert werden.
Get-ADServiceAccount -Identity gMSA_CAWE | Set-ADServiceAccount -AccountNotDelegated $False
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:
- Installieren der Zertifizierungsstellen-Webregistrierung (CAWE)
- Die Zertifizierungsstellen-Webregistrierung (CAWE) für die Verwendung mit einem Domänenkonto konfigurieren
- Die Zertifizierungsstellen-Webregistrierung (CAWE) für die Verwendung mit einem Group Managed Service Account (gMSA) konfigurieren
Externe Quellen
- How to configure Kerberos Constrained Delegation (S4U2Proxy or Kerberos Only) on a custom service account for Web Enrollment proxy pages (Microsoft)
- How to configure the Windows Server 2008 CA Web Enrollment Proxy (Microsoft, archive.org)
- Highly Available Microsoft CA Web Enrollment Servers using DNS (Mike’s Mishaps in IT)
7 Gedanken zu „Die Zertifizierungsstellen-Webregistrierung (CAWE) für die Verwendung mit einem Group Managed Service Account (gMSA) konfigurieren“
Kommentare sind geschlossen.