Meilleur auteur de réponses
Application Nécessitant des droits élevés avec Utilisateur ne disposant pas de droits Admin local

Question
-
Bonjour,
Je développe une application qui dans certains cas à besoin de modifier une clé dans la base de registre.
Or les utilisateurs de mon domaine n'ont pas de droits d'admin local du poste.
Evidement lors de la tentative d'écriture de la clé il y a une exception de securité.
Après la modif du manifeste ( asInvoker -> requireAdministrator) au lancement de l'application il y a la fenetre de demande de login en tant qu'utilisateur Admin, je pense que ce n'est pas la bonne méthode.
Existe - t -il un moyen dans l'application de faire une sorte d'emprunt d'identité pour executer une seule commande?
Merci D'avance
Réponses
-
Oui mais il faudrait sans doute connaitre le mot de passe à emprunter (http://support.microsoft.com/kb/306158, ASP.NET mais les 2 dernières doivent marcher aussi en Windows) ce qui est le mécanisme UAC de Windows.
Ce sont des machines de votre entreprise ou cela peut-être un utilisateur quelconque sur la planète ? Il serait plus facile dans le premier cas d'avoir par exemple un compte dédié juste à l'accès de cette clé (si le mot de passe est compromis cela aura moins d'impact que de compromettre le mot de passe d'un admin).
C'est à faire une fois ? Je le ferais dans une appli séparée si c'est un "setup" ou je regarderais plutôt si il n'y a pas moyen de faire ce que je veux autrement...
Le but général est ?
Please always mark whatever response solved your issue so that the thread is properly marked as "Answered".
- Proposé comme réponse Ciprian Duduiala jeudi 23 février 2012 11:52
- Marqué comme réponse Ciprian Duduiala mercredi 29 février 2012 07:28
-
Bonjour,
Oui, il faut utiliser la méthode WindowsIdentity.Impersonate() : http://msdn.microsoft.com/fr-fr/library/w070t6ka.aspx
Cependant, il faudra que votre application puisse connaitre qqpart le mot de passe adminsitrateur afin d'emprunter son indentité.
Cordialement
Gilles TOURREAU - MVP C#
Architecte logiciel/Consultant/Formateur Freelance
Blog : http://gilles.tourreau.fr
- MCPD : Enterprise Developper / Windows Developper 3.5 / ASP .NET 3.5/4.0
- MCITP : SQL Server 2008 Developper
- MCTS : ADO .NET 3.5 / SQL Server 2008 Developper / Windows Forms 3.5 / ASP .NET 3.5/4.0- Proposé comme réponse Ciprian Duduiala jeudi 23 février 2012 11:52
- Marqué comme réponse Ciprian Duduiala mercredi 29 février 2012 07:28
-
Bonjour Ciprian,Oui c'est possible via GPO.Je le faisais souvent dans une vie antérieure où je devais jongler avecdes utilisateurs à ne surtout pas mettre en administrateur et nombred'applications qui allaient :- écrire dans le registre,- modifier ou créer des fichiers dans Program Files- et le meilleur pour la fin : modifier et créer des fichiers dansSystem32 !Le problème d'Olivier me paraissait assez proche de tout cela, d'où maproposition.
Fred- Marqué comme réponse Ciprian Duduiala mercredi 29 février 2012 07:29
Toutes les réponses
-
Oui mais il faudrait sans doute connaitre le mot de passe à emprunter (http://support.microsoft.com/kb/306158, ASP.NET mais les 2 dernières doivent marcher aussi en Windows) ce qui est le mécanisme UAC de Windows.
Ce sont des machines de votre entreprise ou cela peut-être un utilisateur quelconque sur la planète ? Il serait plus facile dans le premier cas d'avoir par exemple un compte dédié juste à l'accès de cette clé (si le mot de passe est compromis cela aura moins d'impact que de compromettre le mot de passe d'un admin).
C'est à faire une fois ? Je le ferais dans une appli séparée si c'est un "setup" ou je regarderais plutôt si il n'y a pas moyen de faire ce que je veux autrement...
Le but général est ?
Please always mark whatever response solved your issue so that the thread is properly marked as "Answered".
- Proposé comme réponse Ciprian Duduiala jeudi 23 février 2012 11:52
- Marqué comme réponse Ciprian Duduiala mercredi 29 février 2012 07:28
-
Bonjour,
Merci pour votre réponse.
Tout d'abord il s'agit d'une application WinForm destinée à des machines de mon entreprise. Donc pas d'accès depuis l'extérieur.
L'application doit pouvoir écrire une valeur dans la base de registre, c'est en fait un morceau de notre application de gestion.
J'avais aussi pensé à l'emprunt d'identité mais cela fonctionne-t-il aussi avec Winform?
Est ce qu'on peut utiliser BUILTIN\Administrator?
Merci.
-
Bonjour,
Oui, il faut utiliser la méthode WindowsIdentity.Impersonate() : http://msdn.microsoft.com/fr-fr/library/w070t6ka.aspx
Cependant, il faudra que votre application puisse connaitre qqpart le mot de passe adminsitrateur afin d'emprunter son indentité.
Cordialement
Gilles TOURREAU - MVP C#
Architecte logiciel/Consultant/Formateur Freelance
Blog : http://gilles.tourreau.fr
- MCPD : Enterprise Developper / Windows Developper 3.5 / ASP .NET 3.5/4.0
- MCITP : SQL Server 2008 Developper
- MCTS : ADO .NET 3.5 / SQL Server 2008 Developper / Windows Forms 3.5 / ASP .NET 3.5/4.0- Proposé comme réponse Ciprian Duduiala jeudi 23 février 2012 11:52
- Marqué comme réponse Ciprian Duduiala mercredi 29 février 2012 07:28
-
-
Bonjour, Fred,
Je crois aussi que le plus simple est d’utiliser l’emprunt d’identité et peut-être demander à l’installation de votre application le mot de passe de l’administrateur et puis le codifier dans le fichier app.config.
Concernant la GPO… il semble qu’il est possible, mais comme je ne suis pas expert je crois qu’il est mieux mettre votre question sur TechNet (voir les forums Windows Server).
Bonne journée,
Cipri
Ciprian DUDUIALA, MSFT  
•Nous vous prions de considérer que dans le cadre de ce forum on n’offre pas de support technique et aucune garantie de la part de Microsoft ne peut être offerte.
-
Bonjour Ciprian,Oui c'est possible via GPO.Je le faisais souvent dans une vie antérieure où je devais jongler avecdes utilisateurs à ne surtout pas mettre en administrateur et nombred'applications qui allaient :- écrire dans le registre,- modifier ou créer des fichiers dans Program Files- et le meilleur pour la fin : modifier et créer des fichiers dansSystem32 !Le problème d'Olivier me paraissait assez proche de tout cela, d'où maproposition.
Fred- Marqué comme réponse Ciprian Duduiala mercredi 29 février 2012 07:29