Bonjour,
Dans le cadre d'une structure Client - Server en C++, j'ai un serveur d'authentification qui :
1) Vérifie l'identité du client via l'appel à LogonUser
2) Lance un processus Serveur de traitement avec l'identité Windows du client grâce à CreateProcessAsUser avec le token précédemment obtenu par LogonUser
Ce serveur d'authentification peut être démarré en tant que processus par un utilisateur ayant le privilège:
Replace a process level token
Tout se passe bien quand on s'en sert en tant que processus.
Il peut aussi être démarré en tant que Service sous le compte Local Service. Et là le problème arrive.
La phase 1 d'authentification se passe bien mais dans la phase 2, le processus fils crée via CreateProcessAsUser meurt tout de suite après son lancement.
Les logs que j'ai pu obtenir (dans la douleur) sur l'exécution n'ont montré rien de pertinent.
Le seul cas qui marche est pour les clients faisant partie du groupe Adminstrateurs local à la machine.
J'ai essayé de donner tous les privilèges du groupe Administrateurs à un compte de Test ainsi que le Full Control sur les disques durs et la totalité de la base de registre et je n'ai pas obtenu de changements.
Je ne vois pas quelles autres droits/privilèges je peux ajouter à mon compte de Test pour trouver ce qu'il lui manque pour que l'impersonation marche, des idées? :/
Partager