Paru le 07 novembre 2006
Lire cet article en anglais
.
Windows Vista Developer Story inclut du contenu pour les développeurs, ainsi que pour d'autres experts et responsables informatiques intéressés par une exploration en profondeur de certaines fonctionnalités nouvelles et étendues de Windows Vista. Cette version est publiée dans le centre de développement Windows Vista sous forme d'articles rapides, publiés toutes les deux semaines environ. Ces articles ne sont qu'un résumé du fichier d'aide de Windows, qui peut être téléchargé ici.
Remarque : Cet article est une version préliminaire de la documentation et pourra faire l'objet de modifications dans les versions futures.
Remarque : Pour apporter des commentaires sur les articles, veuillez envoyer un message électronique à l'adresse suivante : Vistadev@microsoft.com.
Cet article contient des informations destinées à aider les développeurs d'applications à garantir la compatibilité de leurs applications avec le Contrôle des comptes utilisateur (UAC). Les parties de cet article comprennent :
Sur cette page
Pourquoi le Contrôle des comptes utilisateur ?
Fonctionnement de UAC
L'UAC va-t-elle affecter votre application ?
Conception des applications pour Windows Vista
Déploiement et correction des applications pour les utilisateurs standard
Résolution des problèmes courants
Références
Remarque Vous trouverez le contenu complet de cet article dans le fichier d'aide de Windows, que vous pouvez télécharger ici. Pour trouver cette rubrique dans le fichier d'aide, développez Fondamentaux, Applications sécurisées, Développement d'applications sécurisées, puis cliquez sur Contrôle des comptes utilisateur (UAC).
Pourquoi le Contrôle des comptes utilisateur ?
Les développeurs d'applications ont régulièrement créé des applications Microsoft Windows qui requièrent des droits utilisateur et des privilèges Windows excessifs, ce qui implique souvent que l'utilisateur qui effectue l'installation doit être un administrateur. En conséquence, peu d'utilisateurs exécutent les droits et privilèges Windows moindres requis. De nombreuses entreprises, en quête d'équilibre entre facilité de déploiement et facilité d'utilisation sécurisée, ont souvent eu recours au déploiement de leur bureau en tant qu'administrateur en raison des problèmes de compatibilité avec les applications utilisateur standard.
La liste suivante explique plus précisément pourquoi l'exécution en tant qu'utilisateur standard est difficile sur les ordinateurs pré-Microsoft Windows Vista.
-
De nombreuses applications Windows exigent que l'utilisateur connecté soit un administrateur sans pour autant exiger un accès de niveau administrateur. Ces applications effectuent diverses vérifications d'accès administrateur avant d'être autorisées à être exécutées, notamment :
-
Vérification du jeton d'accès administrateur.
-
Demandes d'accès « Tous les accès » dans des emplacements protégés du système.
-
Écriture des données aux emplacements sécurisés, tels que
%ProgramFiles%
, %WinDir%
, et HKLM\Software
.
-
De nombreuses applications Windows ne sont pas conçues avec le concept de moindres privilèges et ne séparent pas la fonctionnalité d'utilisateur et d'administrateur en deux processus distincts.
-
Windows 2000 et Windows XP créent chaque nouveau compte d'utilisateur en tant qu'administrateur par défaut ; c'est pourquoi, les composants Windows clé tels que les panneaux de contrôle Date et heure et Gestion de l'alimentation ne fonctionnent pas correctement pour un utilisateur standard
-
Les administrateurs Windows 2000 et Windows XP doivent créer deux comptes utilisateur séparés ; un compte pour les tâches administratives et un autre pour effectuer les tâches quotidiennes. Les utilisateurs doivent donc fermer la session des comptes utilisateur standard et se reconnecter en tant qu'administrateur ou utiliser Exécuter en tant que pour effectuer les tâches administratives.
Avec le Contrôle des comptes utilisateur (UAC), Microsoft propose une technologie destinée à simplifier le déploiement des bureaux d'utilisateurs standard, en entreprise comme à domicile.
En construisant en dehors de l'architecture de sécurité Windows telle qu'elle est conçue à l'origine dans le système d'exploitation Microsoft Windows NT 3.1, l'équipe UAC a cherché à mettre en place un modèle d'utilisateur standard qui était à la fois flexible et plus sûr. Dans les versions antérieures de Windows, un seul jeton d'accès est créé pour un administrateur lors du processus de connexion. Le jeton d'accès de l'administrateur inclut la plupart des privilèges Windows et des identificateurs de sécurité administratifs (SID, Security Identifiers). Ce jeton d'accès garantit à un administrateur la possibilité d'installer des applications, de configurer le système d'exploitation et d'accéder à n'importe quelle ressource.
L'équipe UAC a adopté une approche radicalement différente lors du processus de création des jetons d'accès dans Windows Vista. Lorsqu'un administrateur ouvre une session sur un ordinateur exécutant Windows Vista, deux jetons d'accès sont créés : un jeton d'accès utilisateur standard filtré et un jeton d'accès administrateur complet. Au lieu de lancer le bureau (Explorer.exe) avec le jeton d'accès de l'administrateur, le jeton d'accès utilisateur standard est utilisé. Tous les processus enfant héritent de ce lancement initial du bureau (le processus explorer.exe), ce qui permet de limiter la surface d'attaque de Windows Vista. Par défaut, tous les utilisateurs, y compris les administrateurs, ouvrent une session sur un ordinateur exécutant Windows Vista en tant qu'utilisateurs standard.
Remarque Il existe une exception à l'affirmation précédente : Les invités ouvrent une session sur l'ordinateur avec des droits utilisateurs et des privilèges moindres par rapport aux utilisateurs standard.
Lorsqu'un administrateur essaie d'effectuer une tâche administrative, l'installation d'une application par exemple, UAC invite l'utilisateur à approuver l'action. Si l'utilisateur approuve l'action, la tâche est lancée avec le jeton d'accès administrateur complet de l'administrateur. Il s'agit du comportement de l'invite de l'administrateur par défaut, qui peut être configuré dans le composant logiciel enfichable Gestionnaire de stratégie de sécurité (secpol.msc) local et avec l'éditeur de stratégie de groupe (gpedit.msc).
Remarque Un compte administrateur sur un ordinateur Windows Vista où UAC est activé est également appelé compte administrateur en mode approbation administrateur. Le mode approbation administrateur identifie l'expérience utilisateur par défaut pour les administrateurs.
Chaque élévation administrative est également spécifique au processus, ce qui empêche d'autres processus d'utiliser le jeton d'accès sans inviter l'utilisateur à donner son approbation. En conséquence, les utilisateurs administrateur possèdent un contrôle encore plus fin sur ce que les applications installent tout en ayant un impact conséquent sur les logiciels malveillants qui s'attendent à ce que l'utilisateur connecté soit exécuté avec le jeton d'accès administrateur complet.
Les utilisateurs standard ont également la possibilité d'élever leur flux et d'effectuer des tâches administratives en utilisant une infrastructure UAC. Lorsqu'un utilisateur standard essaie d'effectuer une tâche administrative, l'UAC invite utilisateur à saisir des informations d'identification valides pour un compte administrateur. Il s'agit du comportement de l'invite de l'administrateur par défaut, qui peut être configuré dans le composant logiciel enfichable Gestionnaire de stratégie de sécurité (secpol.msc) local et avec l'éditeur de stratégie de groupe (gpedit.msc).
Mises à jour Windows Vista
Les mises à jour suivantes reflètent les changements essentiels cumulatifs dans la fonctionnalité qui ont été apportés à Windows Vista.
-
Par défaut, UAC est activé
-
Tous les comptes utilisateurs suivants sont créés en tant qu'utilisateurs standard
-
Les invites d'élévation s'affichent sur le bureau sécurisé par défaut
-
Les invites d'élévation pour les applications en arrière-plan sont réduites à la barre des tâches
-
Les élévations sont bloquées au niveau du chemin d'accès de connexion de l'utilisateur
-
Le compte administrateur intégré est activé par défaut sur les nouvelles installations
-
Contrôle des comptes utilisateur et scénarios à distance
-
Nouveaux paramètres de la Liste de contrôle d'accès par défaut (ACL)
Vous trouverez des informations détaillées concernant les mises à jour de Windows Vista mentionnées ci-dessus dans le fichier d'aide de Windows, qui peut être téléchargée ici.
Fonctionnement de UAC
Cette section décrit les composants architecturaux et fonctionnels de UAC pour les développeurs d'application. Elle contient également les rubriques Nouvelles technologies pour Windows Vista et Architecture de l'UAC.
Nouvelles technologies pour Windows Vista
Les sections suivantes décrivent les nouvelles technologies pour Windows Vista.
-
Détection de l'installeur
-
Correction pour l'utilisateur standard avec Windows Installer 4.0
-
Isolation des privilèges au niveau de l'interface utilisateur
-
Virtualisation
Des informations détaillées concernant les nouvelles technologies de Windows Vista et les modifications apportées aux jetons d'accès sont consultables dans la section Nouvelle Technologie du fichier d'aide Windows, qui peut être téléchargé ici.
Architecture de l'UAC
Le schéma suivant représente le flux de traitement pour le lancement d'exécutables dans Windows Vista.
Architecture de l'UAC
La partie suivante décrit le flux de traitement affiché dans le schéma d'architecture de l'UAC et indique la façon dont l'UAC est implémentée lorsqu'un exécutable tente de se lancer.
Chemin de lancement de l'utilisateur standard
Le chemin de lancement de l'utilisateur standard Windows Vista est semblable au chemin de lancement Windows XP, mais comprend quelques modifications.
-
ShellExecute() appelle CreateProcess().
-
CreateProcess() appelle AppCompat, Fusion, et Installer Detection afin de déterminer si l'application nécessite une élévation. L'exécutable est alors inspecté afin de déterminer son requestedExecutionLevel, qui est stocké dans le manifeste d'application de l'exécutable. La base de données AppCompat stocke les informations des entrées du correctif de compatibilité applicative d'une application. Installer Detection détecte les exécutables d'installation.
-
CreateProcess() renvoie un code d'erreur Win32 indiquant ERROR_ELEVATION_REQUIRED.
-
ShellExecute() recherche cette nouvelle erreur en particulier et, à sa réception, effectue un appel vers le service Informations d'applications (AIS) afin de tenter de lancer l'élévation de privilèges.
Chemin de lancement élevé
Le chemin de lancement élevé Windows Vista est un nouveau chemin de lancement Windows.
-
Le service AIS reçoit l'appel depuis ShellExecute() et évalue de nouveau le niveau d'exécution requis et la stratégie de groupe afin de déterminer si l'élévation est approuvée et de définir l'expérience utilisateur pour l'élévation.
-
Si le niveau d'exécution requis nécessite une élévation, le service lance l'invite d'élévation sur le bureau interactif de l'appelant (basée sur la stratégie de groupe), à l'aide du HWND transmis à partir de ShellExecute().
-
Une fois que l'utilisateur a donné son consentement ou dispose d'informations d'identification valides, le service AIS récupère le jeton d'accès correspondant associé à l'utilisateur approprié, si nécessaire. Par exemple, une application qui nécessite un requestedExecutionLevel de la catégorie highestAvailable récupèrera des jetons d'accès qui sont différents pour un utilisateur qui est seulement membre du groupe Opérateurs de sauvegarde des jetons d'accès d'un utilisateur membre du groupe Administrateurs locaux.
Le service AIS émet un nouvel appel CreateProcessAsUser(), en fournissant le jeton d'accès administrateur et en indiquant le bureau interactif de l'appelant.
L'UAC va-t-elle affecter votre application ?
L'affectation ou la non-affectation de votre application par l'UAC dépend de l'état actuel de l'application. Dans plusieurs cas, procéder à des modifications pour se conformer aux exigences Microsoft Windows® Security ne sera pas nécessaire. Cependant, des modifications peuvent s'avérer nécessaires au niveau des processus d'installation, de fonctionnement et de mise à jour de certaines applications, notamment les applications métier, afin que celles-ci fonctionnent correctement dans un environnement de l'UAC de Windows Vista.
Remarque Si une application fonctionne correctement en mode utilisateur standard sur Windows XP, elle fonctionnera correctement en mode utilisateur STANDARD sur Windows Vista.
Pour plus d'informations concernant ce sujet, reportez-vous aux chapitres suivants du fichier d'aide Windows, qui peut être téléchargé ici.
-
Pourquoi supprimer les dépendances administratives de mon application ?
-
Réduction du coût total de propriété de votre application
-
Procédure pour savoir si mon application dispose de dépendances administratives
-
Exigences dans le cas d'une application administrateur légitime
Conception des applications pour Windows Vista
La liste suivante représente un workflow pour la conception de votre application pour Windows Vista :
-
Première étape : Testez la compatibilité applicative de votre application.
-
Deuxième étape : Deux : Classez votre application en mode Utilisateur standard, Administrateur ou Application à utilisateurs multiples.
-
Troisième étape : Remaniez la fonctionnalité de compatibilité avec l'UAC de votre application.
-
Quatrième étape : Remaniez l'interface utilisateur de votre application pour qu'elle soit compatible avec l'UAC.
-
Cinquième étape : Remaniez l'installeur de votre application.
-
Sixième étape : Créez et intégrez un manifeste de l'application avec votre application.
-
Septième étape : Testez votre application.
-
Huitième étape : Signez avec Authenticode votre application.
-
Neuvième étape : Participez au programme Windows Vista Logo.
Parmi les étapes répertoriées ci-dessus, beaucoup contiennent des exemples et des exemples de codes pour les développeurs. Des informations détaillées concernant les étapes répertoriées ci-dessus sont consultables dans le fichier d'aide Windows, qui peut être téléchargé ici.
Déploiement et correction des applications pour les utilisateurs standard
En général, les entreprises devront imaginer un mode d'installation automatique des applications sur les postes de travail de leurs utilisateurs, ce qui leur permettra de réduire les coûts administratifs. Ce problème est essentiellement est constitué des deux questions suivantes : tout d'abord, comment ces applications doivent-elles être rassemblées pour le déploiement ? Ensuite, quelle technologie faut-il utiliser pour déployer ces applications ? Dans le cas des entreprises qui ont l'environnement le plus petit, un mécanisme de déploiement automatique et résistant n'est peut-être pas nécessaire. Des informations détaillées concernant le déploiement et la correction des applications pour les utilisateurs standard sont consultables dans le fichier d'aide Windows, qui peut être téléchargé ici.
Résolution des problèmes courants
Les sections suivantes traitent des problèmes d'applications couramment rencontrés dans Windows Vista.
Les problèmes courants sont les suivants :
-
Problèmes d'installation d'ActiveX
-
Documents ActiveX Ne pas installer
-
Application, Framework ou complément requis
-
Autorisation administrative requise pour l'installation/la correction
-
Emplacements des paramètres d'application pour chaque utilisateur
-
Valeurs par défaut d'applications UAC/DR pour l'enregistrement dans un annuaire protégé
Pour des informations détaillées, reportez-vous à la section Résolution des problèmes courants du fichier d'aide Windows, qui peut être téléchargé ici.
Références
Cette section contient une référence à la virtualisation et une référence aux paramètres de sécurité.
Pour des informations détaillées, reportez-vous à la section Références du fichier d'aide Windows.
Remarque L'intégralité du contenu de cet article est disponible dans le fichier d'aide Windows, qui peut être téléchargé ici. Pour atteindre ce sujet dans le fichier d'aide, veuillez développer Notions fondamentales, Applications Sécurisées, Développement d'Applications sécurisées, puis cliquez sur Contrôle des comptes utilisateur (UAC).