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

Aus Sicherheitsgründen kann es sinnvoll sein, den CES 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 CES nach der im Artikel "Installation eines Certificate Enrollment Web Service (CES)" beschriebene 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 CES Dienstkonto

Das CES 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.
  • muss für die delegierte Authentifizierung gegenüber der Zertifizierungsstelle konfiguriert werden.

Erstellen des gMSA für den Certificate Enrollment Web Service

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

New-ADServiceAccount `
    -Name gMSA_CES `
    -PrincipalsAllowedToRetrieveManagedPassword CES01$ `
    -DNSHostName gMSA_CES.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/ces01.intra.adcslabor.de INTRA\gMSA_CES$ 

Konfigurieren der Delegierungseinstellungen für den gMSA

Für Group managed Service Accounts ist es leider nicht möglicht, 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 ohne Protokollübergang ( Option "Use Kerberos only") für die Protokolle "HOST" und "rpcss".

Wird die Authentifizierung mit einem Clientzertifikat verwendet, muss eine Delegierung mit Protokollübergang eingerichtet werden, was das Risiko für einen Angriff mittels Kerberoasting erhöhen kann.

$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_CES | Set-ADObject -Add @{"msDS-AllowedToDelegateTo"=$AllowedToDelegateTo} 

Installieren des gMSA auf dem CES Server

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

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_CES

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

gMSA in die IIS_IUSRS Gruppe auf dem CES Server aufnehmen

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

Konfigurieren des gMSA im CES-Anwendungspool

Damit der CES Dienst mit dem installierten gMSA arbeitet, muss dieser im WSEnrollmentServer-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:

Ein Gedanke zu „Den Certificate Enrollment Web Service (CES) für den Betrieb mit einem Group Managed Service Account (gMSA) konfigurieren“

Kommentare sind geschlossen.

de_DEDeutsch