Configura la tua app per utilizzare un gMSA
Si applica a: Windows Server 2025, Windows Server 2022, Windows Server 2019
Nella configurazione tipica, a un contenitore viene assegnato un solo account del servizio gestito di gruppo (gMSA) usato ogni volta che l'account computer contenitore tenta di eseguire l'autenticazione alle risorse di rete. Ciò significa che l'app deve essere eseguita come Sistema locale o Servizio di rete se deve usare l'identità del gruppo gMSA. I contenitori possono anche essere configurati con gMSA aggiuntivi, nel caso in cui si voglia eseguire un servizio o un'applicazione nel contenitore come identità diversa dall'account computer del contenitore.
Eseguire un pool di app IIS come servizio di rete
Se si ospita un sito Web IIS nel contenitore, tutto ciò che devi fare per sfruttare il gMSA è impostare l'identità del pool di app su Servizio di rete. È possibile eseguire questa operazione nel Dockerfile aggiungendo il comando seguente:
RUN %windir%\system32\inetsrv\appcmd.exe set AppPool DefaultAppPool -'processModel.identityType':NetworkService
Se in precedenza utilizzavate le credenziali utente statiche per il pool di app IIS, considerate l'uso dell'account del servizio gestito del gruppo (gMSA) come sostituzione di tali credenziali. È possibile cambiare il gMSA tra ambienti di sviluppo, test e produzione e IIS riconoscerà automaticamente l'identità corrente senza necessità di cambiare l'immagine del contenitore.
Eseguire un servizio Windows come servizio di rete
Se l'app in contenitori viene eseguita come servizio Windows, è possibile impostare il servizio come servizio di rete nel Dockerfile:
RUN sc.exe config "YourServiceName" obj= "NT AUTHORITY\NETWORK SERVICE" password= ""
Eseguire app console arbitrarie come servizio di rete
Per le app console generiche non ospitate in IIS o Service Manager, spesso è più semplice eseguire il contenitore come Network Service (servizio di rete) in modo che l'app erediti automaticamente il contesto gMSA (servizio gestito del gruppo). Questa funzionalità è disponibile a partire da Windows Server versione 1709.
Aggiungere la riga seguente al Dockerfile per eseguirla come servizio di rete per impostazione predefinita:
USER "NT AUTHORITY\NETWORK SERVICE"
È anche possibile connettersi a un contenitore come servizio di rete una tantum con docker exec
. Ciò è particolarmente utile se si stanno risolvendo i problemi di connettività in un contenitore in esecuzione quando il contenitore non viene normalmente eseguito come servizio di rete.
# 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
Contenuto correlato
Oltre a configurare le app, puoi anche usare i gMSAs per:
Se si verificano problemi durante l'installazione, consultare la guida alla risoluzione dei problemi per le possibili soluzioni.