Delen via


Uw app configureren voor het gebruik van een gMSA

Van toepassing op: Windows Server 2025, Windows Server 2022, Windows Server 2019

In de gebruikelijke configuratie krijgt een container slechts één door de groep beheerd serviceaccount (gMSA) dat wordt gebruikt wanneer het containercomputeraccount probeert te verifiëren bij netwerkresources. Dit betekent dat uw app moet worden uitgevoerd als Local System of Network Service als deze de gMSA-identiteit moet gebruiken. Containers kunnen ook worden geconfigureerd met extra gMSA's, voor het geval u een service of toepassing in de container wilt uitvoeren als een andere identiteit dan het containercomputeraccount.

Een IIS-app-pool uitvoeren als Netwerkservice

Als u een IIS-website host in uw container, hoeft u alleen maar de gMSA te gebruiken om uw app-poolidentiteit in te stellen op Network Service. U kunt dit doen in uw Dockerfile door de volgende opdracht toe te voegen:

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

Als u eerder statische gebruikersreferenties hebt gebruikt voor uw IIS-app-pool, kunt u de gMSA beschouwen als vervanging voor deze referenties. U kunt de gMSA wijzigen tussen ontwikkel-, test- en productieomgevingen en IIS haalt automatisch de huidige identiteit op zonder dat u de containerinstallatiekopieën hoeft te wijzigen.

Een Windows-service uitvoeren als netwerkservice

Als uw container-app wordt uitgevoerd als een Windows-service, kunt u instellen dat de service wordt uitgevoerd als Network Service in uw Dockerfile:

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

Willekeurige console-apps uitvoeren als Netwerkservice

Voor algemene console-apps die niet worden gehost in IIS of Service Manager, is het vaak het eenvoudigst om de container uit te voeren als Network Service zodat de app automatisch de gMSA-context over neemt. Deze functie is beschikbaar vanaf Windows Server versie 1709.

Voeg de volgende regel toe aan uw Dockerfile om deze standaard als netwerkservice te laten uitvoeren:

USER "NT AUTHORITY\NETWORK SERVICE"

U kunt ook eenmalig verbinding maken met een container als netwerkservice met docker exec. Dit is met name handig als u verbindingsproblemen in een actieve container wilt oplossen wanneer de container normaal gesproken niet als netwerkservice wordt uitgevoerd.

# 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

Naast het configureren van apps kunt u ook gMSA's gebruiken voor het volgende:

Als u problemen ondervindt tijdens de installatie, raadpleegt u onze gids voor probleemoplossing voor mogelijke oplossingen.