Den Certificate Enrollment Policy Web Service (CEP) für den Betrieb mit einem Group Managed Service Account (gMSA) konfigurieren

Aus Sicherheitsgründen kann es sinnvoll sein, den CEP 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 Zertifikatregistrierungs-Webdienste (Certificate Enrollment Policy Web Service, CEP und Certificate Enrollment Web Service, CES) ermöglichen die automatische Beantragung und Erneuerung von Zertifikaten einer Zertifizierungsstelle über eine Webbasierte Schnittstelle. Somit ist kein direkter Kontakt zur Zertifizierungsstelle über Remote Procedure Call (RPC) notwendig. Für eine detailliertere Beschreibung siehe Artikel "Grundlagen Zertifikatbeantragung über Certificate Enrollment Web Services (CEP, CES)".

Wurde CEP nach der im Artikel "Installation eines Certificate Enrollment Policy Web Service (CEP)" beschriebenen Anleitung installiert, läuft der Dienst nach der Installation mit der Identität des Anwendungspools.

Wenn CEP und CES auf dem gleichen Server installiert sind und ein Service Account mit Delegation verwendet wird, müssen die CEP und CES Application Pools unter dem gleichen Account betrieben werden.

Voraussetzungen für das CEP Dienstkonto

Das CEP Dienstkonto…

  • 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.

Erstellen des gMSA für den Certificate Enrollment Policy Web Service

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_CEP `
    -PrincipalsAllowedToRetrieveManagedPassword CEP01$ `
    -DNSHostName gMSA_CEP.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/cep01.intra.adcslabor.de INTRA\gMSA_CEP$

Installieren des gMSA auf dem CEP Server

Zunächst müssen die Active Directory Managementwerkzeuge für PowerShell auf dem CEP 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_CEP

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_CEP

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

gMSA in die IIS_IUSRS Gruppe auf dem CEP Server aufnehmen

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

Konfigurieren des gMSA im CEP-Anwendungspool

Damit der CEP Dienst mit dem installierten gMSA arbeitet, muss dieser im WSEnrollmentPolicyServer-Anwendungspool in der Internet Information Server (IIS) Managementkonsole konfiguriert werden. Hierzu wird mit rechts auf den WSEnrollmentPolicyServer-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: