Freigeben über


So konfigurieren Sie Ihre App, dass sie ein gMSA verwendet

Gilt für: Windows Server 2025, Windows Server 2022, Windows Server 2019

In der typischen Konfiguration erhält ein Container nur ein gruppenverwaltetes Dienstkonto (Group Managed Service Account, gMSA), das verwendet wird, wenn das Containercomputerkonto versucht, sich bei Netzwerkressourcen zu authentifizieren. Dies bedeutet, dass Ihre App als lokalen System- oder Netzwerkdienst ausgeführt werden muss, wenn sie die gMSA-Identität verwenden muss. Container können auch mit zusätzlichen GMSAs konfiguriert werden, falls Sie einen Dienst oder eine Anwendung im Container als eine andere Identität als das Containercomputerkonto ausführen möchten.

Ausführen eines IIS-App-Pools als Netzwerkdienst

Wenn Sie eine IIS-Website in Ihrem Container hosten, müssen Sie lediglich die gMSA nutzen, um ihre App-Poolidentität auf Netzwerkdienst-festzulegen. Sie können dies in Ihrer Dockerfile-Datei tun, indem Sie den folgenden Befehl hinzufügen:

RUN %windir%\system32\inetsrv\appcmd.exe set AppPool DefaultAppPool -'processModel.identityType':NetworkService

Wenn Sie zuvor statische Benutzeranmeldeinformationen für Ihren IIS-App-Pool verwendet haben, sollten Sie die gMSA als Ersatz für diese Anmeldeinformationen in Betracht ziehen. Sie können die gMSA zwischen Entwicklungs-, Test- und Produktionsumgebungen ändern und IIS übernimmt automatisch die aktuelle Identität, ohne das Containerimage ändern zu müssen.

Ausführen eines Windows-Diensts als Netzwerkdienst

Wenn Ihre containerisierte App als Windows-Dienst ausgeführt wird, können Sie den Dienst so festlegen, dass er als Netzwerkdienst- in Ihrer Dockerfile-Datei ausgeführt wird:

RUN sc.exe config "YourServiceName" obj= "NT AUTHORITY\NETWORK SERVICE" password= ""

Ausführen beliebiger Konsolen-Apps als Netzwerkdienst

Bei generischen Konsolen-Apps, die nicht in IIS oder Dienst-Manager gehostet werden, ist es häufig am einfachsten, den Container als Netzwerkdienst- auszuführen, sodass die App automatisch den gMSA-Kontext erbt. Dieses Feature ist ab Windows Server, Version 1709, verfügbar.

Fügen Sie Ihrer Dockerfile-Datei die folgende Zeile hinzu, damit sie standardmäßig als Netzwerkdienst ausgeführt wird:

USER "NT AUTHORITY\NETWORK SERVICE"

Sie können auch auf einmaliger Basis mit einem Container als Netzwerkdienst über docker execeine Verbindung herstellen. Dies ist besonders hilfreich, wenn Sie Konnektivitätsprobleme in einem ausgeführten Container beheben, wenn der Container normalerweise nicht als Netzwerkdienst ausgeführt wird.

# Opens an interactive PowerShell console in the container (id = 85d) as the Network Service account
docker exec -it --user "NT AUTHORITY\NETWORK SERVICE" 85d powershell

Zusätzlich zum Konfigurieren von Apps können Sie auch GMSAs verwenden, um:

Wenn während des Setups Probleme auftreten, finden Sie im Leitfaden zur Problembehandlung mögliche Lösungen.