Eseguire un contenitore con un account del servizio gestito del gruppo

Si applica a: Windows Server 2022, Windows Server 2019

Per eseguire un contenitore con un account del servizio gestito di gruppo (gMSA), fornire il file delle specifiche delle credenziali al parametro --security-opt di Docker Run:

docker run --security-opt "credentialspec=file://contoso_webapp01.json" --hostname webapp01 -it mcr.microsoft.com/windows/server:ltsc2022 powershell

Importante

In Windows Server 2016 versioni 1709 e 1803, il nome host del contenitore deve corrispondere al nome breve dell'account del servizio gestito di gruppo.

Nell'esempio precedente, il nome dell'account SAM del servizio gestito del gruppo è webapp01, quindi il nome host del contenitore è denominato anche webapp01.

In Windows Server 2019 e versioni successive, il campo nome host non è obbligatorio, ma il contenitore verrà identificato comunque con il nome gMSA anziché con il nome host, anche se assegnato diverso in modo esplicito.

Per verificare se l'account del servizio gestito di gruppo funziona correttamente, eseguire il cmdlet seguente nel contenitore:

# Replace contoso.com with your own domain
PS C:\> nltest /sc_verify:contoso.com

Flags: b0 HAS_IP  HAS_TIMESERV
Trusted DC Name \\dc01.contoso.com
Trusted DC Connection Status Status = 0 0x0 NERR_Success
Trust Verification Status = 0 0x0 NERR_Success
The command completed successfully

Se lo stato della connessione DC attendibile e lo stato di verifica dell'attendibilità non sono NERR_Success, seguire le istruzioni per la risoluzione dei problemi per eseguire il debug del problema.

È possibile verificare l'identità dell'account del servizio gestito di gruppo dall'interno del contenitore eseguendo il comando seguente e controllando il nome del client:

PS C:\> klist get webapp01

Current LogonId is 0:0xaa79ef8
A ticket to krbtgt has been retrieved successfully.

Cached Tickets: (2)

#0>     Client: webapp01$ @ CONTOSO.COM
        Server: krbtgt/webapp01 @ CONTOSO.COM
        KerbTicket Encryption Type: AES-256-CTS-HMAC-SHA1-96
        Ticket Flags 0x40a10000 -> forwardable renewable pre_authent name_canonicalize
        Start Time: 3/21/2019 4:17:53 (local)
        End Time:   3/21/2019 14:17:53 (local)
        Renew Time: 3/28/2019 4:17:42 (local)
        Session Key Type: AES-256-CTS-HMAC-SHA1-96
        Cache Flags: 0
        Kdc Called: dc01.contoso.com

[...]

Per aprire PowerShell o un'altra app console come account del servizio gestito di gruppo, è possibile chiedere al contenitore di essere eseguito con l'account del servizio di rete anziché con il normale account ContainerAdministrator (o ContainerUser per NanoServer):

# NOTE: you can only run as Network Service or SYSTEM on Windows Server 1709 and later
docker run --security-opt "credentialspec=file://contoso_webapp01.json" --hostname webapp01 --user "NT AUTHORITY\NETWORK SERVICE" -it mcr.microsoft.com/windows/servercore:ltsc2019 powershell

Quando si esegue il contenitore come servizio di rete, è possibile testare l'autenticazione di rete come account del servizio gestito di gruppo tentando di connettersi a SYSVOL in un controller di dominio:

# This command should succeed if you're successfully running as the gMSA
PS C:\> dir \\contoso.com\SYSVOL


    Directory: \\contoso.com\sysvol


Mode                LastWriteTime         Length Name
----                -------------         ------ ----
d----l        2/27/2019   8:09 PM                contoso.com

Passaggi successivi

Oltre che per l'esecuzione dei contenitori, è possibile usare gli account del servizio gestito di gruppo per:

Per le soluzioni possibili, in caso di problemi durante l'installazione, consulta la guida alla risoluzione dei problemi.