Partager via


Contrôle de compte d’utilisateur

Note

Ce guide de conception a été créé pour Windows 7 et n’a pas été mis à jour pour les versions plus récentes de Windows. La plupart des conseils s’appliquent toujours en principe, mais la présentation et les exemples ne reflètent pas nos conseils de conception actuels.

Une expérience de contrôle de compte d’utilisateur bien conçue permet d’empêcher les changements à l’échelle du système indésirables d’une manière prévisible et nécessitant un effort minimal.

Avec le contrôle de compte d’utilisateur (UAC) entièrement activé, les administrateurs interactifs s’exécutent normalement avec des privilèges utilisateur minimum, mais ils peuvent auto-élever pour effectuer des tâches administratives en donnant un consentement explicite avec l’interface utilisateur de consentement. Ces tâches administratives incluent l’installation de logiciels et de pilotes, la modification des paramètres à l’échelle du système, l’affichage ou la modification d’autres comptes d’utilisateur et l’exécution d’outils d’administration.

Dans leur état le moins privilégié, les administrateurs sont appelés administrateurs protégés. Dans leur état élevé, ils sont appelés administrateurs avec élévation de privilèges. En revanche, les utilisateurs Standard ne peuvent pas élever eux-mêmes, mais ils peuvent demander à un administrateur de les élever à l’aide de l’interface utilisateur d’informations d’identification. Le compte Administrateur intégré ne nécessite pas d’élévation.

capture d’écran du message de sécurité « Autoriser le programme »

L’interface utilisateur de consentement utilisée pour élever les administrateurs protégés pour avoir des privilèges d’administration.

capture d’écran du message demandant le mot de passe

Interface utilisateur des informations d’identification utilisée pour élever les utilisateurs Standard.

L’UAC offre les avantages suivants :

  • Il réduit le nombre de programmes qui s’exécutent avec des privilèges élevés, ce qui permet d’empêcher les utilisateurs de modifier accidentellement leurs paramètres système et d’empêcher les « programmes malveillants » d’obtenir un accès à l’échelle du système. Lorsque l’élévation est refusée, les programmes malveillants ne peuvent affecter que les données de l’utilisateur actuel. Sans élévation, les programmes malveillants ne peuvent pas apporter de modifications à l’échelle du système ou affecter d’autres utilisateurs.
  • Pour environnements managés, les expériences UAC bien conçues permettent aux utilisateurs d’être plus productifs lors de l’exécution en tant qu’utilisateurs Standard en supprimant les restrictions inutiles.
  • Il permet aux utilisateurs Standard de demander aux administrateurs de leur accorder l’autorisation d’effectuer des tâches administratives au sein de leur session actuelle.
  • Pour les environnements domestiques, il permet un meilleur contrôle parental sur les modifications à l’échelle du système, y compris les logiciels installés.

Développeurs : Pour obtenir des informations d’implémentation, consultez Reconcevoir votre interface utilisateur pour lesde compatibilité UAC.

Dans Windows Vista, les administrateurs protégés peuvent choisir d’être avertis de toutes les modifications du système ou aucune. Le paramètre par défaut de l’UAC consiste à notifier toutes les modifications, quelle que soit leur origine. Lorsque vous êtes averti, votre bureau est grisé et vous devez approuver ou refuser la demande dans la boîte de dialogue UAC avant de pouvoir effectuer autre chose sur votre ordinateur. Le grisage de votre bureau est appelé de bureau sécurisé, car d’autres programmes ne peuvent pas s’exécuter pendant qu’il est grisé.

Windows 7 introduit deux paramètres UAC intermédiaires pour les administrateurs protégés, en plus des deux de Windows Vista. La première consiste à avertir les utilisateurs uniquement lorsqu’un programme effectue la modification, de sorte que les administrateurs sont automatiquement élevés lorsqu’ils effectuent eux-mêmes une modification. Il s’agit du paramètre par défaut de l’UAC dans Windows 7, et il utilise également le bureau sécurisé.

Le deuxième paramètre intermédiaire dans Windows 7 est le même que le premier, sauf qu’il n’utilise pas le bureau sécurisé.

capture d’écran de quatre paramètres uac dans windows 7

Windows 7 introduit deux paramètres UAC intermédiaires.

Remarque : Instructions relatives à l’écriture de code pour prendre en charge le contrôle de compte d’utilisateur sont présentées dans un article distinct.

Concepts de conception

objectifs

Une expérience de contrôle de compte d’utilisateur bien conçue a les objectifs suivants :

  • Éliminez l’élévation inutile. Les utilisateurs doivent avoir à élever uniquement pour effectuer des tâches qui nécessitent des privilèges d’administration. Toutes les autres tâches doivent être conçues pour éliminer le besoin d’élévation. Souvent, les logiciels hérités nécessitent des privilèges d’administrateur inutilement en écrivant dans les sections du Registre HKLM ou HKCR, ou dans les dossiers Program Files ou Windows System.
  • Soyez prévisible. Les utilisateurs standard doivent savoir quelles tâches obligent un administrateur à effectuer ou ne peuvent pas être effectuées dans tous les environnements managés. Les administrateurs doivent savoir quelles tâches nécessitent une élévation. S’ils ne peuvent pas prédire la nécessité d’élévation avec précision, ils sont plus susceptibles de donner leur consentement pour les tâches administratives lorsqu’ils ne le devraient pas.
  • Exiger un effort minimal. Les tâches qui nécessitent des privilèges d’administration doivent être conçues pour nécessiter une seule élévation. Les tâches nécessitant plusieurs élévations deviennent rapidement fastidieuses.
  • Rétablissez les privilèges minimum. Une fois qu’une tâche nécessitant des privilèges d’administration est terminée, le programme doit revenir à l’état des privilèges minimum.

flux de tâches d’élévation

Lorsqu’une tâche nécessite une élévation, elle comporte les étapes suivantes :

  1. Point d’entrée. Les tâches qui nécessitent une élévation immédiate lorsque l’UAC est entièrement activée ont des points d’entrée marqués avec le bouclier UAC. Dans ce cas, les utilisateurs doivent s’attendre à voir une interface utilisateur d’élévation immédiatement après avoir cliqué sur ces commandes et ils doivent être plus prudents lorsqu’ils voient l’interface utilisateur d’élévation à partir de tâches qui n’ont pas de bouclier.

    capture d’écran des icônes de bouclier uac et leurs étiquettes

    Dans cet exemple, les éléments du panneau de configuration du contrôle parental et des comptes d’utilisateur nécessitent une élévation.

    Lorsque l’UAC est partiellement activé ou désactivé complètement, le bouclier UAC est toujours affiché pour indiquer que la tâche implique des modifications au niveau du système et nécessite donc une élévation, même si l’utilisateur risque de ne pas voir l’interface utilisateur d’élévation. Toujours afficher le bouclier UAC pour les tâches qui nécessitent une élévation conserve l’interface utilisateur simple et prévisible.

  2. Élévation. Pour les administrateurs protégés, la tâche demande le consentement à l’aide de l’interface utilisateur de consentement. Pour les utilisateurs Standard, la tâche demande des informations d’identification d’administrateur à l’aide de l’interface utilisateur des informations d’identification.

    capture d’écran de deux types d’élévation

    Ces exemples montrent l’interface utilisateur des informations d’identification et l’interface utilisateur de consentement.

  3. Processus avec élévation de privilèges distincts. En interne, un nouveau processus avec élévation de privilèges est créé pour effectuer la tâche.

  4. Rétablissez le privilège minimum. Si nécessaire, revenez au privilège minimum pour effectuer les étapes qui ne nécessitent pas d’élévation.

Notez que les tâches ne « se rappellent pas » des états élevés. Par exemple, si l’utilisateur navigue de retour et de retour sur un point d’entrée d’élévation dans un Assistant, l’utilisateur doit élever chaque fois.

Modèles d’utilisation

Le contrôle de compte d’utilisateur a plusieurs modèles d’utilisation (par ordre de préférence) :

  1. Travaillez pour les utilisateurs Standard. Concevez la fonctionnalité pour tous les utilisateurs en limitant son étendue à l’utilisateur actuel. En limitant les paramètres à l’utilisateur actuel (par opposition à l’échelle du système), vous éliminez entièrement la nécessité d’une interface utilisateur d’élévation et permettre aux utilisateurs d’effectuer la tâche.

    Incorrect :

    capture d’écran du message : vous n’avez pas de privilège

    Dans cet exemple, les utilisateurs De Windows XP ont dû disposer de privilèges d’administration pour afficher ou modifier le fuseau horaire actuel.

    correct :

    capture d’écran de la boîte de dialogue date et heure

    Dans cet exemple, la fonctionnalité de fuseau horaire a été repensée dans Windows 7 et Windows Vista pour fonctionner pour tous les utilisateurs.

  2. Disposer d’éléments d’interface utilisateur distincts pour les utilisateurs et les administrateurs Standard. Séparez clairement les tâches utilisateur standard des tâches d’administration. Donnez à tous les utilisateurs l’accès à des informations en lecture seule utiles. Identifiez clairement les tâches administratives avec le bouclier UAC.

    graphique de bouclier uac montrant l’élévation requise

    Dans cet exemple, l’élément du panneau de configuration système affiche son état à tous les utilisateurs, mais la modification des paramètres à l’échelle du système nécessite une élévation.

  3. Autoriser les utilisateurs Standard à tenter une tâche et à élever des privilèges en cas d’échec. Si les utilisateurs Standard peuvent afficher les informations et être en mesure d’apporter des modifications sans élévation, autorisez-les à accéder à l’interface utilisateur et à les élever uniquement si la tâche échoue. Cette approche convient lorsque les utilisateurs Standard ont un accès limité, par exemple avec les propriétés de leurs propres fichiers dans l’Explorateur Windows. Il convient également aux paramètres des pages hub hybrides du Panneau de configuration.

    capture d’écran de l’accès est refusée

    Dans cet exemple, l’utilisateur a tenté de modifier les propriétés du fichier programme, mais n’a pas eu suffisamment de privilèges. L’utilisateur peut élever et réessayer.

  4. Travaillez uniquement pour les administrateurs. Utilisez cette approche uniquement pour les fonctionnalités et programmes d’administrateur ! Si une fonctionnalité est destinée uniquement aux administrateurs (et n’a pas de chemins de navigation ni d’informations utiles en lecture seule pour les utilisateurs Standard), vous pouvez demander des informations d’identification d’administrateur au point d’entrée avant d’afficher n’importe quelle interface utilisateur. Utilisez cette approche pour les assistants longs et les flux de pages lorsque tous les chemins nécessitent des privilèges d’administration.

    Si l’ensemble du programme est destiné aux administrateurs uniquement, marquez-le pour demander des informations d’identification d’administrateur afin de lancer. Windows affiche ces icônes de programme avec la superposition de bouclier UAC.

    capture d’écran du logo windows et de la superposition de bouclier uac

    Dans cet exemple, le programme nécessite des privilèges d’administration pour lancer.

Lignes directrices

Icône de bouclier UAC

  • Contrôles d’affichage avec le bouclier UAC pour indiquer que la tâche nécessite une élévation immédiate lorsque l’UAC est entièrement activée, même si L’UAC n’est pas entièrement activée. Si tous les chemins d’accès d’un Assistant et flux de page nécessitent une élévation, affichez le bouclier UAC au point d’entrée de la tâche. L’utilisation appropriée du bouclier UAC permet aux utilisateurs de prédire quand l’élévation est requise.

  • Si votre programme prend en charge plusieurs versions de Windows, affichez le bouclier UAC si au moins une version nécessite une élévation. Étant donné que Windows XP ne nécessite jamais d’élévation, envisagez de supprimer les boucliers UAC pour Windows XP si vous pouvez le faire de manière cohérente et sans nuire aux performances.

  • N’affichez pas le bouclier UAC pour les tâches qui ne nécessitent pas d’élévation dans la plupart des contextes. Étant donné que cette approche sera parfois trompeuse, l’approche préférée consiste à utiliser une commande contextuelle correctement protégée à la place.

    capture d’écran des fichiers photo dans l’Explorateur Windows

    Étant donné que la commande Nouveau dossier nécessite une élévation uniquement lorsqu’elle est utilisée dans les dossiers système, elle s’affiche sans protection UAC.

  • Le bouclier UAC peut être affiché sur les contrôles suivants :

    boutons commande :

    capture d’écran du bouton de commande avec l’icône de bouclier uac

    Bouton de commande qui nécessite une élévation immédiate.

    Liens de commande :

    capture d’écran du lien de commande avec l’icône de bouclier uac

    Lien de commande qui nécessite une élévation immédiate.

    liens :

    capture d’écran du lien modifier le compte avec de protection uac

    Lien qui nécessite une élévation immédiate.

    menus :

    capture d’écran du menu avec de bouclier uac

    Menu déroulant qui nécessite une élévation immédiate.

  • Étant donné que les tâches ne se souviennent pas des états élevés, ne modifiez pas le bouclier UAC pour refléter l’état.

  • Affichez la protection UAC même si le contrôle de compte d’utilisateur a été désactivé ou si l’utilisateur utilise le compte Administrateur intégré. L’affichage cohérent du bouclier UAC est plus facile à programmer et fournit aux utilisateurs des informations sur la nature de la tâche.

Élévation

  • Dans la mesure du possible, les tâches de conception à effectuer par les utilisateurs Standard sans élévation. Donnez à tous les utilisateurs l’accès à des informations en lecture seule utiles.

  • Élever sur une base de tâches, et non par paramètre. Ne mélangez pas les paramètres utilisateur Standard avec les paramètres d’administration dans une seule page ou boîte de dialogue. Par exemple, si les utilisateurs Standard peuvent modifier certains paramètres, mais pas tous, fractionnez ces paramètres sous la forme d’une surface d’interface utilisateur distincte.

    Incorrect :

    capture d’écran des paramètres de date et d’heure

    Dans cet exemple, les paramètres utilisateur standard sont mal mélangés avec les paramètres d’administration.

    correct :

    capture d’écran de la même boîte de dialogue sans boucliers uac

    Dans cet exemple, les paramètres de modification de la date et de l’heure se trouvent dans une boîte de dialogue distincte, disponibles uniquement pour les administrateurs. Les paramètres de fuseau horaire sont disponibles pour les utilisateurs Standard et ne sont pas mélangés avec les paramètres d’administration.

  • N’envisagez pas l’élévation de privilèges lors de la détermination de l’affichage ou de la désactivation d’un contrôle. Cela est dû au fait que :

    • Dans les environnements non managés, supposons que les utilisateurs Standard peuvent élever en demandant à un administrateur. La désactivation des contrôles nécessitant une élévation empêche les utilisateurs d’avoir des privilèges d’administrateur.
    • Dans les environnements managés, supposons que les utilisateurs Standard ne peuvent pas élever du tout. La suppression de contrôles nécessitant une élévation empêcherait les utilisateurs de savoir quand cesser de regarder.
  • Pour éliminer les élévations inutiles :

    • Si une tâche peut nécessiter une élévation, élever aussi tard que possible. Si une tâche a besoin d’une confirmation, affichez l’interface utilisateur d’élévation uniquement une fois l’utilisateur confirmé. Si une tâche nécessite toujours une élévation, élever à son point d’entrée.
    • Une fois élevé, restez élevé jusqu’à ce que les privilèges élevés ne soient plus nécessaires. Les utilisateurs ne doivent pas avoir à élever plusieurs fois pour effectuer une tâche unique.
    • Si les utilisateurs doivent élever pour apporter une modification, mais choisir de ne pas apporter de modifications, laissez les boutons de validation positifs activés, mais gérez la validation en tant qu’annulation. Cela élimine les utilisateurs qui doivent élever juste pour fermer une fenêtre.
    • Incorrect :
    • capture d’écran de fenêtre avec un seul bouton actif
    • Dans cet exemple, le bouton Enregistrer les modifications est désactivé pour éviter une élévation inutile, mais devient activé lorsque les utilisateurs modifient la sélection. Toutefois, le bouton de validation désactivé fait qu’il ressemble vraiment aux utilisateurs qui n’ont pas le choix.
  • N’affichez pas de message d’erreur lorsque les tâches échouent, car les utilisateurs ont choisi de ne pas élever. Supposons que les utilisateurs choisissent intentionnellement de ne pas continuer, de sorte qu’ils ne considèrent pas cette situation comme une erreur.

    Incorrect :

    capture d’écran du message : la restauration fabrikam ne peut pas s’exécuter

    Dans cet exemple, Fabrikam Restore donne incorrectement un message d’erreur lorsque l’utilisateur décide de ne pas élever.

  • N’affichez pas d’avertissements pour expliquer que les utilisateurs peuvent avoir besoin d’élever leurs privilèges pour effectuer des tâches. Laissez les utilisateurs découvrir ce fait par eux-mêmes.

  • Afficher l’interface utilisateur de protection et d’élévation UAC en fonction du tableau suivant :

    Objet Circonstance Où mettre le bouclier UAC Quand élever
    Programme
    L’ensemble du programme est destiné aux administrateurs uniquement.
    capture d’écran du logo windows et de la superposition de bouclier uac
    Superposition du bouclier UAC sur l’icône du programme.
    Afficher l’interface utilisateur d’élévation au lancement.
    Commander
    L’intégralité de la commande est destinée aux administrateurs uniquement.
    capture d’écran du lien de modification du compte et de protection uac
    Protection UAC sur le bouton de commande ou le lien.
    Affichez l’interface utilisateur d’élévation lorsque le bouton de commande ou le lien est cliqué, mais après toutes les confirmations.
    Commander
    La commande affiche des informations en lecture seule utiles appropriées pour tous les utilisateurs, mais les modifications nécessitent des privilèges d’administration.
    capture d’écran du lien modifier les paramètres et de protection uac
    Protection UAC sur le bouton de commande ou le lien pour apporter des modifications.
    Affichez l’interface utilisateur d’élévation lorsque le bouton de commande est cliqué, mais après toutes les confirmations.
    Commander
    Les utilisateurs standard peuvent afficher les informations et éventuellement apporter des modifications sans élévation. autoriser les utilisateurs standard à tenter et à élever des privilèges en cas d’échec.
    capture d’écran d’erreur avec l’icône uac sur le bouton nouvelle tentative
    N’affichez pas le bouclier UAC pour la commande, mais affichez-le pour le point d’entrée d’élévation si la commande échoue.
    Affichez l’interface utilisateur d’élévation lorsque l’utilisateur retente la commande.
    Étape de tâche
    Toutes les étapes suivantes nécessitent une élévation.
    capture d’écran du bouton de commande suivant avec de bouclier uac
    Bouclier UAC sur le bouton Suivant (ou équivalent).
    Afficher l’interface utilisateur d’élévation lorsque le bouton Suivant ou autre validation est cliqué.
    Étape de tâche
    Certaines branches nécessitent une élévation.
    capture d’écran du lien de commande avec de bouclier uac
    Protection UAC sur les liens de commande qui nécessitent une élévation.
    Affichez l’interface utilisateur d’élévation lorsque des liens de commande avec la protection UAC sont cliqués.

Interface utilisateur d’élévation

  • Si l’utilisateur fournit un compte qui n’est pas valide (nom ou mot de passe) ou n’a pas de privilèges d’administrateur, réaffichez simplement l’interface utilisateur des informations d’identification. N’affichez pas de message d’erreur.
  • Si l’utilisateur annule l’interface utilisateur d’informations d’identification, revenez à l’interface utilisateur d’origine. N’affichez pas de message d’erreur.
  • Si le contrôle de compte d’utilisateur a été désactivé et qu’un utilisateur Standard tente d’effectuer une tâche nécessitant une élévation, indiquez un message d’erreur indiquant « Cette tâche nécessite des privilèges d’administrateur. Pour effectuer cette tâche, vous devez vous connecter à l’aide d’un compte d’administrateur. »

capture d’écran de la tâche nécessite des privilèges

Dans cet exemple, le contrôle de compte d’utilisateur a été désactivé afin qu’un message d’erreur explique que l’utilisateur doit utiliser un compte d’administrateur.

Assistants

  • Ne pas élever plusieurs fois. Une fois qu’un Assistant est élevé, il doit rester élevé.
  • Si la tâche est effectuée dans l’Assistant, placez un bouclier UAC sur le bouton « Suivant » de la page Validation (qui doit recevoir une étiquette plus ). Lorsque l’utilisateur valide :
    • Si la page suivante est une page Progression, passez à cette page et affichez modalement l’interface utilisateur d’élévation. Une fois l’élévation réussie, effectuez la tâche.
    • Si la page suivante est une page d’achèvement, passez à cette page (mais remplacez temporairement son contenu par « En attente d’autorisation... ») et affichez modalement l’interface utilisateur d’élévation. Une fois l’élévation réussie, effectuez la tâche, puis affichez le contenu de la page d’achèvement.
    • Si l’utilisateur annule l’interface utilisateur d’élévation, revenez à la page Validation. Cela permet à l’utilisateur de réessayer.
  • Si la tâche est effectuée une fois l’Assistant terminé, placez une protection UAC sur le bouton « Terminer » de la page Validation (qui doit recevoir une étiquette plus spécifique). Lorsque l’utilisateur valide :
    • Restez sur la page Validation et affichez modalement l’interface utilisateur d’élévation. Une fois l’élévation réussie, fermez l’Assistant.
    • Si l’utilisateur annule l’interface utilisateur d’élévation, revenez à la page Validation. Cela permet à l’utilisateur de réessayer.
  • Pour les assistants longs destinés uniquement aux administrateurs, vous pouvez demander des informations d’identification d’administrateur au point d’entrée avant d’afficher n’importe quelle interface utilisateur.

SMS

  • N’utilisez pas de points de suspension simplement parce qu’une commande nécessite une élévation. La nécessité d’élever est indiquée avec le bouclier UAC.

Documentation

Lorsque vous faites référence au contrôle de compte d’utilisateur :

  • Reportez-vous à la fonctionnalité contrôle de compte d’utilisateur (sur la première mention) ou UAC (mention suivante), et non pas compte d’utilisateur avec privilèges minimum ou LUA.
  • Reportez-vous aux non-administrateurs en tant qu’utilisateurs Standard.
  • Reportez-vous aux administrateurs d’ordinateur intégrés en tant qu’administrateurs intégrés.

Dans la documentation de l’utilisateur :

  • Reportez-vous à l’acte de donner le consentement pour effectuer une tâche administrative comme accordant l’autorisation.

Dans la programmation et d’autres documents techniques :

  • Reportez-vous à l’acte de donner le consentement pour effectuer une tâche administrative en tant qu’élévation.
  • Dans le contexte de l’UAC, reportez-vous aux administrateurs en tant qu’administrateurs protégés lorsqu’ils ne sont pas élevés, et les administrateurs avec élévation de privilèges après élévation.
  • Reportez-vous à la boîte de dialogue utilisée pour entrer des mots de passe comme interface utilisateur des informations d’identification. Reportez-vous à la boîte de dialogue utilisée pour donner son consentement en tant qu’interface utilisateur de consentement. Reportez-vous généralement à l’interface utilisateur d’élévation.