Comptes d’utilisateur de service
Chaque service s’exécute dans le contexte de sécurité d’un compte d’utilisateur. Le nom d’utilisateur et le mot de passe d’un compte sont spécifiés par la fonction CreateService au moment de l’installation du service. Le nom d’utilisateur et le mot de passe peuvent être modifiés à l’aide de la fonction ChangeServiceConfig . Vous pouvez utiliser la fonction QueryServiceConfig pour obtenir le nom d’utilisateur (mais pas le mot de passe) associé à un objet de service. Le gestionnaire de contrôle de service (SCM) charge automatiquement le profil utilisateur.
Lors du démarrage d’un service, le SCM se connecte au compte associé au service. Si l’ouverture de session réussit, le système produit un jeton d’accès et l’attache au nouveau processus de service. Ce jeton identifie le processus de service dans toutes les interactions suivantes avec des objets sécurisables (objets auxquels un descripteur de sécurité est associé). Par exemple, si le service tente d’ouvrir un handle sur un canal, le système compare le jeton d’accès du service au descripteur de sécurité du canal avant d’accorder l’accès.
Le SCM ne gère pas les mots de passe des comptes d’utilisateur de service. Si un mot de passe a expiré, l’ouverture de session échoue et le service ne démarre pas. L’administrateur système qui affecte des comptes aux services peut créer des comptes avec des mots de passe qui n’expirent jamais. L’administrateur peut également gérer des comptes avec des mots de passe qui expirent à l’aide d’un programme de configuration de service pour modifier régulièrement les mots de passe.
Si un service doit reconnaître un autre service avant de partager ses informations, le deuxième service peut utiliser le même compte que le premier service ou s’exécuter dans un compte appartenant à un alias reconnu par le premier service. Les services qui doivent s’exécuter de manière distribuée sur le réseau doivent s’exécuter dans des comptes à l’échelle du domaine.
Vous pouvez spécifier l’un des comptes spéciaux suivants au lieu de spécifier un compte d’utilisateur pour le service :