Configurer votre application pour utiliser un compte de service administré de groupe

S’applique à : Windows Server 2022, Windows Server 2019

Dans la configuration classique, un conteneur ne reçoit qu’un seul compte de service administré de groupe, qui est utilisé chaque fois que le compte d’ordinateur conteneur tente de s’authentifier auprès des ressources réseau. Cela signifie que votre application doit s’exécuter en tant que Système local ou Service réseau si elle doit utiliser l’identité de compte de service administré de groupe. Vous pouvez également configurer des conteneurs avec des comptes de service administré de groupe supplémentaires si vous souhaitez exécuter un service ou une application dans le conteneur sous une identité différente de celle du compte d’ordinateur de conteneur.

Exécuter un pool d’applications IIS en tant que service réseau

Si vous hébergez un site web IIS dans votre conteneur, vous n’avez qu’à utiliser le compte de service administré de groupe pour définir l’identité de votre pool d’applications sur Service réseau. Vous pouvez le faire dans votre fichier Dockerfile en ajoutant la commande suivante :

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

Si vous avez précédemment utilisé les informations d’identification de l’utilisateur statiques pour votre pool d’applications IIS, envisagez d’utiliser le compte de service administré de groupe à la place de ces informations d’identification. Vous pouvez modifier le compte de service administré de groupe entre les environnements de développement, de test et de production, et IIS récupère automatiquement l’identité actuelle sans avoir à modifier l’image du conteneur.

Exécuter un service Windows en tant que Service réseau

Si votre application en conteneur s’exécute en tant que service Windows, vous pouvez définir le service pour qu’il s’exécute en tant que Service réseau dans votre fichier Dockerfile :

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

Exécuter des applications de console arbitraires en tant que service réseau

Pour des applications de console génériques qui ne sont pas hébergées dans IIS ou Service Manager, il est souvent plus facile d’exécuter le conteneur en tant que Service réseau de sorte que l’application hérite automatiquement du contexte du compte de service administré de groupe. Cette fonctionnalité est disponible à partir de la version 1709 de Windows Server.

Ajoutez la ligne suivante à votre fichier Dockerfile pour qu’elle s’exécute en tant que Service réseau par défaut :

USER "NT AUTHORITY\NETWORK SERVICE"

Vous pouvez également établir une connexion à un conteneur en tant que Service réseau de façon ponctuelle avec docker exec. C’est particulièrement utile si vous résolvez des problèmes de connectivité dans un conteneur en cours d’exécution lorsque celui-ci ne s’exécute généralement pas en tant que Service réseau.

# 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

Étapes suivantes

Outre la configuration des applications, vous pouvez utiliser des comptes de service administré de groupe pour effectuer les opérations suivantes :

Si vous rencontrez des problèmes lors de la configuration, vous trouverez peut-être des solutions dans notre Guide de résolution des problèmes.