Compartir a través de


Configuración de una aplicación para usar una gMSA

Se aplica a: Windows Server 2022, Windows Server 2019

En la configuración típica, un contenedor solo recibe una cuenta de servicio administrada de grupo (gMSA) que se usa siempre que la cuenta de equipo del contenedor intenta autenticarse en los recursos de red. Es decir, la aplicación tendrá que ejecutarse como sistema local o servicio de red si tiene que usar la identidad de la gMSA. Los contenedores también se pueden configurar con gMSA adicionales, en caso de que quieras ejecutar un servicio o una aplicación en el contenedor con una identidad diferente de la cuenta de equipo del contenedor.

Ejecución un grupo de aplicaciones de IIS como servicio de red

Si hospedas un sitio web de IIS en el contenedor, lo único que tienes que hacer para aprovechar la gMSA es establecer la identidad del grupo de aplicaciones en Servicio de red. Puedes hacerlo en el Dockerfile agregando el comando siguiente:

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

Si anteriormente usaste credenciales de usuario estáticas para el grupo de aplicaciones de IIS, considera la gMSA como el reemplazo de esas credenciales. Puedes cambiar la gMSA entre los entornos de desarrollo, pruebas y producción, e IIS recogerá automáticamente la identidad actual sin tener que cambiar la imagen del contenedor.

Ejecución de un servicio de Windows como servicio de red

Si la aplicación en contenedor se ejecuta como servicio de Windows, puedes configurar el servicio para que se ejecute como Servicio de red en Dockerfile:

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

Ejecución de aplicaciones de consola arbitrarias como servicio de red

En el caso de las aplicaciones de consola genéricas que no se hospedan en IIS ni en Service Manager, a menudo es más fácil ejecutar el contenedor como Servicio de red, por lo que la aplicación hereda automáticamente el contexto de la gMSA. Esta característica está disponible a partir de Windows Server, versión 1709.

Agrega la siguiente línea a Dockerfile para que se ejecute como servicio de red de forma predeterminada:

USER "NT AUTHORITY\NETWORK SERVICE"

También puedes conectarte a un contenedor como servicio de red de forma única con docker exec. Esto es especialmente útil si estás solucionando problemas de conectividad en un contenedor en ejecución cuando el contenedor no se ejecuta normalmente como servicio de red.

# 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

Pasos siguientes

Además de la configuración de aplicaciones, también puedes usar las gMSA para lo siguiente:

Si tienes problemas durante la instalación, consulta nuestra guía de solución de problemas para ver las posibles soluciones.