Contrôle de compte d'utilisateur

Notes

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’éviter les changements indésirables à l’échelle du système 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 le moins de privilèges utilisateur, mais ils peuvent s’élever eux-mêmes pour effectuer des tâches d’administration en accordant 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 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 par eux-mêmes, mais ils peuvent demander à un administrateur de les élever à l’aide de l’interface utilisateur des 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 afin qu’ils disposent de 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.

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 peuvent uniquement affecter 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 les 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 donne aux utilisateurs Standard la possibilité 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 plus d’informations sur l’implémentation, consultez Reconcevoir votre interface utilisateur pour la 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 UAC par défaut consiste à notifier toutes les modifications, quelle que soit leur origine. Lorsque vous en êtes averti, votre bureau est grisé et vous devez approuver ou refuser la demande dans la boîte de dialogue UAC avant de pouvoir faire quoi que ce soit d’autre sur votre ordinateur. La gradation de votre bureau est appelée bureau sécurisé , car d’autres programmes ne peuvent pas s’exécuter tant 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 à informer les utilisateurs uniquement lorsqu’un programme apporte 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 UAC par défaut 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.

Note: Les 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.

Principes 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 nécessitent qu’un administrateur effectue ou ne peut pas être effectuée dans des environnements managés. Les administrateurs doivent savoir quelles tâches nécessitent une élévation. S’ils ne peuvent pas prédire avec précision la nécessité d’une élévation, ils sont plus susceptibles de donner leur consentement pour les tâches administratives alors qu’ils ne le devraient pas.
  • Nécessite un minimum d’effort. 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 qui nécessitent 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 de privilège minimum.

Flux de tâches d’élévation

Lorsqu’une tâche nécessite une élévation, elle effectue 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 très prudents lorsqu’ils voient l’interface utilisateur d’élévation à partir de tâches qui n’ont pas de protection.

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

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

    Lorsque la UAC est partiellement activée ou complètement désactivée, le bouclier UAC s’affiche toujours 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 peut ne pas voir l’interface utilisateur d’élévation. L’affichage toujours du bouclier UAC pour les tâches qui nécessitent une élévation maintient 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 souviennent » pas des états élevés. Par exemple, si l’utilisateur navigue d’un point d’entrée d’élévation dans un Assistant, il doit élever chaque fois.

Modèles d’usage

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’ensemble du système), vous éliminez entièrement le besoin d’une interface utilisateur d’élévation et autorisez les utilisateurs à 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 devaient disposer de privilèges d’administrateur pour afficher ou modifier le fuseau horaire actuel.

    Correct :

    capture d’écran de la boîte de dialogue de date et d’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. Avoir des éléments d’interface utilisateur distincts pour les utilisateurs et les administrateurs Standard. Séparez clairement les tâches utilisateur standard des tâches administratives. Donnez à tous les utilisateurs l’accès à des informations utiles en lecture seule. Identifiez clairement les tâches administratives avec le bouclier UAC.

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

    Dans cet exemple, l’élément 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 à s’élever en cas d’échec. Si les utilisateurs Standard peuvent afficher les informations et sont en mesure d’apporter des modifications sans élévation, autorisez-les à accéder à l’interface utilisateur et à les élever uniquement en cas d’échec de la tâche. Cette approche convient lorsque les utilisateurs Standard ont un accès limité, par exemple avec les propriétés de leurs propres fichiers dans Windows Explorer. Il convient également aux paramètres sur Panneau de configuration pages hub hybrides.

    capture d’écran d’un message d’accès refusé

    Dans cet exemple, l’utilisateur a tenté de modifier les propriétés du fichier programme, mais ne disposait pas de privilèges suffisants. 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 une interface utilisateur. Utilisez cette approche pour les Longs Assistants et les flux de pages lorsque tous les chemins nécessitent des privilèges d’administrateur.

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

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

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

Consignes

Icône de protection UAC

  • Affichez les contrôles 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 la UAC n’est pas entièrement activée actuellement. Si tous les chemins d’accès d’un Assistant et d’un flux de page nécessitent une élévation, affichez le bouclier UAC au point d’entrée de la tâche. L’utilisation correcte de la protection UAC permet aux utilisateurs de prédire quand une élévation est nécessaire.

  • 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 protections 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 est parfois trompeuse, l’approche recommandé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 de commande :

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

    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 uac shield

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

    Liens:

    Capture d’écran du lien modifier le compte avec uac shield

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

    Menus:

    capture d’écran du menu avec protection 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, concevez les tâches à effectuer par les utilisateurs Standard sans élévation. Donnez à tous les utilisateurs l’accès à des informations utiles en lecture seule.

  • Élever sur une base par tâche, et non sur une base 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 de la boîte de dialogue Paramètres de date et d’heure

    Dans cet exemple, les paramètres utilisateur standard ne sont pas mélangés de manière incorrecte avec les paramètres d’administration.

    Correct :

    capture d’écran de la même boîte de dialogue sans protection 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, disponible 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.

  • Ne tenez pas compte de la nécessité de surélever pour déterminer si un contrôle doit être affiché ou désactivé. La raison est la suivante :

    • Dans les environnements non managés, supposons que les utilisateurs Standard peuvent élever leurs privilèges en demandant à un administrateur. La désactivation des contrôles qui nécessitent une élévation empêcherait les utilisateurs d’élever les administrateurs.
    • Dans les environnements managés, supposons que les utilisateurs Standard ne peuvent pas élever du tout. La suppression des contrôles qui nécessitent une élévation empêcherait les utilisateurs de savoir quand arrêter de regarder.
  • Pour éliminer l’élévation inutile :

    • Si une tâche peut nécessiter une élévation, élever le plus tard possible. Si une tâche a besoin d’une confirmation, affichez l’interface utilisateur d’élévation uniquement une fois que l’utilisateur a 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 seule tâche.
    • 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 évite aux utilisateurs d’avoir à élever simplement pour fermer une fenêtre.
    • Incorrect :
    • capture d’écran de la 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é donne l’impression que les utilisateurs n’ont vraiment pas le choix.
  • N’affichez pas de message d’erreur lorsque les tâches échouent, car les utilisateurs ont choisi de ne pas élever la valeur. Supposons que les utilisateurs ont intentionnellement choisi 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 indique incorrectement un message d’erreur lorsque l’utilisateur décide de ne pas élever la valeur.

  • 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.

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

    Object Circonstance Où placer la protection UAC Quand élever le niveau
    Programme
    Le programme entier est destiné uniquement aux administrateurs.
    capture d’écran du logo windows et de la superposition du bouclier uac
    Superposition du bouclier UAC sur l’icône du programme.
    Afficher l’interface utilisateur d’élévation au lancement.
    Commande
    La commande entière s’adresse uniquement aux administrateurs.
    capture d’écran du lien de modification du compte et de la protection uac
    Protection UAC sur le bouton de commande ou le lien.
    Afficher l’interface utilisateur d’élévation lorsque vous cliquez sur le bouton de commande ou le lien, mais après toute confirmation.
    Commande
    La commande affiche des informations utiles en lecture seule appropriées pour tous les utilisateurs, mais les modifications nécessitent des privilèges d’administrateur.
    capture d’écran du lien des paramètres de modification et de la protection uac
    Protection UAC sur le bouton de commande ou le lien pour apporter des modifications.
    Afficher l’interface utilisateur d’élévation lorsque vous cliquez sur le bouton de commande, mais après toutes les confirmations.
    Commande
    Les utilisateurs standard peuvent afficher les informations et éventuellement apporter des modifications sans élévation. autoriser les utilisateurs standard à tenter et à s’élever en cas d’échec.
    capture d’écran de l’erreur avec l’icône uac sur le bouton réessayer
    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.
    Afficher 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 protection uac
    Protection UAC sur le bouton Suivant (ou équivalent).
    Afficher l’interface utilisateur d’élévation lorsque vous cliquez sur Suivant ou un autre bouton de validation.
    Étape de tâche
    Certaines branches nécessitent une élévation.
    capture d’écran du lien de commande avec protection uac
    Protection UAC sur les liens de commande qui nécessitent une élévation.
    Afficher l’interface utilisateur d’élévation lorsque vous cliquez sur des liens de commande avec le bouclier UAC.

Interface utilisateur d’élévation

  • Si l’utilisateur fournit un compte qui n’est pas valide (nom ou mot de passe) ou qui ne dispose pas de privilèges d’administrateur, il suffit de réafficher l’interface utilisateur des informations d’identification. N’affichez pas de message d’erreur.
  • Si l’utilisateur annule l’interface utilisateur des informations d’identification, retournez l’utilisateur à 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 qui nécessite 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 ouvrir une session à l’aide d’un compte d’administrateur. »

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

Dans cet exemple, le contrôle de compte d’utilisateur a été désactivé, donc 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 De validation (qui doit recevoir une étiquette plus spécifique). 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 Achèvement.
    • Si l’utilisateur annule l’interface utilisateur d’élévation, revenez à la page Valider. Cela permet à l’utilisateur de réessayer.
  • Si la tâche est effectuée une fois l’Assistant terminé, placez un bouclier UAC sur le bouton « Terminer » de la page commit (qui doit recevoir une étiquette plus spécifique). Lorsque l’utilisateur valide :
    • Restez sur la page Commit 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 Valider. 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 toute interface utilisateur.

Texte

  • 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 (au premier mention) ou UAC (sur les mention suivantes), et non Compte d’utilisateur à privilèges minimum ou LUA.
  • Reportez-vous aux non-administrateurs en tant qu’utilisateurs Standard.
  • Reportez-vous aux administrateurs d’ordinateurs intégrés en tant qu’administrateurs intégrés.

Dans la documentation utilisateur :

  • Reportez-vous à l’acte de donner le consentement pour effectuer une tâche administrative comme accordant une 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 la UAC, reportez-vous aux administrateurs en tant qu’administrateurs protégés lorsqu’ils ne sont pas élevés et administrateurs élevés après l’élévation.
  • Reportez-vous à la boîte de dialogue utilisée pour entrer des mots de passe en tant qu’interface utilisateur des informations d’identification. Reportez-vous à la boîte de dialogue utilisée pour donner le consentement en tant qu’interface utilisateur de consentement. Reportez-vous aux deux généralement sous le titre D’interface utilisateur d’élévation.