Partilhar via


Configurar seu aplicativo para usar um gMSA

Aplica-se a: Windows Server 2025, Windows Server 2022, Windows Server 2019

Na configuração típica, um contêiner recebe apenas uma Conta de Serviço Gerenciado de Grupo (gMSA) que é usada sempre que a conta de computador do contêiner tenta se autenticar em recursos de rede. Isso significa que seu aplicativo precisará ser executado como do Sistema Local ou de Serviço de Rede se precisar usar a identidade gMSA. Os contêineres também podem ser configurados com gMSAs adicionais, caso você queira executar um serviço ou aplicativo no contêiner como uma identidade diferente da conta do computador do contêiner.

Executar um pool de aplicativos do IIS como Serviço de Rede

Se você estiver hospedando um site do IIS em seu contêiner, tudo o que você precisa fazer para aproveitar o gMSA é definir a identidade do pool de aplicativos como Serviço de Rede. Você pode fazer isso em seu Dockerfile adicionando o seguinte comando:

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

Se você usou anteriormente credenciais de usuário estáticas para seu pool de aplicativos do IIS, considere o gMSA como o substituto dessas credenciais. Você pode alterar o gMSA entre ambientes de desenvolvimento, teste e produção e o IIS pegará automaticamente a identidade atual sem precisar alterar a imagem do contêiner.

Executar um serviço do Windows como Serviço de Rede

Se seu aplicativo em contêiner for executado como um serviço do Windows, você poderá definir o serviço para ser executado como Serviço de Rede em seu Dockerfile:

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

Executar aplicativos de console arbitrários como Serviço de Rede

Para aplicativos de console genéricos que não estão hospedados no IIS ou no Service Manager, geralmente é mais fácil executar o contêiner como Serviço de Rede para que o aplicativo herde automaticamente o contexto gMSA. Esse recurso está disponível a partir do Windows Server versão 1709.

Adicione a seguinte linha ao seu Dockerfile para que ele seja executado como Serviço de Rede por padrão:

USER "NT AUTHORITY\NETWORK SERVICE"

Você também pode se conectar a um contêiner como Serviço de Rede de forma única com docker exec. Isso é particularmente útil se você estiver solucionando problemas de conectividade em um contêiner em execução quando o contêiner normalmente não é executado como Serviço de Rede.

# 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

Além de configurar aplicativos, você também pode usar gMSAs para:

Se tiver algum problema durante a configuração, consulte o nosso guia de resolução de problemas para obter possíveis soluções.