Compartir a través de


Control de cuentas de usuario

Nota

Esta guía de diseño se creó para Windows 7 y no se ha actualizado para las versiones más recientes de Windows. Gran parte de las instrucciones todavía se aplican en principio, pero la presentación y los ejemplos no reflejan nuestra guía de diseño actual .

Una experiencia de control de cuentas de usuario bien diseñada ayuda a evitar cambios no deseados en todo el sistema de una manera predecible y requiere un esfuerzo mínimo.

Con el Control de cuentas de usuario (UAC) totalmente habilitado, los administradores interactivos normalmente se ejecutan con privilegios de usuario mínimos, pero pueden elevarse automáticamente para realizar tareas administrativas dando consentimiento explícito con la interfaz de usuario de consentimiento. Estas tareas administrativas incluyen instalar software y controladores, cambiar la configuración de todo el sistema, ver o cambiar otras cuentas de usuario y ejecutar herramientas administrativas.

En su estado con privilegios mínimos, los administradores se conocen como administradores protegidos. En su estado elevado, se les conoce como administradores elevados. Por el contrario, los usuarios estándar no pueden elevarse por sí mismos, pero pueden pedir a un administrador que los eleva mediante la interfaz de usuario de credenciales. La cuenta de administrador integrada no requiere elevación.

captura de pantalla del mensaje de seguridad

La interfaz de usuario de consentimiento, que se usa para elevar a los administradores protegidos para tener privilegios administrativos.

captura de pantalla del mensaje que solicita de contraseña

La interfaz de usuario de credenciales, que se usa para elevar los usuarios estándar.

UAC proporciona las siguientes ventajas:

  • Reduce el número de programas que se ejecutan con privilegios elevados, lo que ayuda a evitar que los usuarios cambien accidentalmente su configuración del sistema y ayuden a evitar que el "malware" obtenga acceso a todo el sistema. Cuando se deniega la elevación, el malware solo puede afectar a los datos del usuario actual. Sin elevación, el malware no puede realizar cambios en todo el sistema ni afectar a otros usuarios.
  • Para entornos administrados, las experiencias UAC bien diseñadas permiten a los usuarios ser más productivos al ejecutarse como usuarios estándar mediante la eliminación de restricciones innecesarias.
  • Proporciona a los usuarios estándar la capacidad de pedir a los administradores que les conceda permiso para realizar tareas administrativas dentro de su sesión actual.
  • En el caso de los entornos domésticos, permite un mejor control parental sobre los cambios en todo el sistema, incluido el software que se instala.

Desarrolladores: Para obtener información sobre la implementación, consulte Rediseñar la interfaz de usuario para la compatibilidad con UAC.

En Windows Vista, los administradores protegidos pueden optar por recibir notificaciones sobre todos los cambios del sistema o ninguno. La configuración predeterminada de UAC es notificar a todos los cambios, independientemente de su origen. Cuando se le notifique, el escritorio se atenuará y deberá aprobar o denegar la solicitud en el cuadro de diálogo UAC para poder hacer cualquier otra cosa en el equipo. La atenuación del escritorio se conoce como de escritorio seguro porque otros programas no se pueden ejecutar mientras está atenuado.

Windows 7 presenta dos configuraciones de UAC intermedias para administradores protegidos, además de las dos de Windows Vista. La primera consiste en notificar a los usuarios solo cuando un programa realiza el cambio, por lo que los administradores se elevan automáticamente cuando realizan un cambio por sí mismos. Esta es la configuración predeterminada de UAC en Windows 7 y también usa el escritorio seguro.

La segunda configuración intermedia de Windows 7 es la misma que la primera, salvo que no usa el escritorio seguro.

captura de pantalla de cuatro configuraciones de uac en windows 7

Windows 7 presenta dos configuraciones de UAC intermedias.

Nota: Directrices relacionadas con la escritura de código para admitir el control de cuentas de usuario se presentan en un artículo independiente.

Conceptos de diseño

objetivos

Una experiencia de control de cuentas de usuario bien diseñada tiene los siguientes objetivos:

  • Elimine la elevación innecesaria. Los usuarios deben tener que elevar solo para realizar tareas que requieran privilegios administrativos. Todas las demás tareas deben diseñarse para eliminar la necesidad de elevación. A menudo, el software heredado requiere privilegios de administrador innecesariamente escribiendo en las secciones del registro HKLM o HKCR, o en las carpetas Archivos de programa o sistema de Windows.
  • Sea predecible. Los usuarios estándar deben saber qué tareas requieren que un administrador realice o no se pueda realizar en todos los entornos administrados. Los administradores deben saber qué tareas requieren elevación. Si no pueden predecir la necesidad de elevación con precisión, es más probable que conceda consentimiento para las tareas administrativas cuando no deben hacerlo.
  • Requerir un esfuerzo mínimo. Las tareas que requieren privilegios administrativos deben diseñarse para requerir una sola elevación. Las tareas que requieren varias elevaciones se vuelven tediosas rápidamente.
  • Revierta a los privilegios mínimos. Una vez completada una tarea que requiera privilegios administrativos, el programa debe revertir al estado de privilegios mínimos.

flujo de tareas elevación

Cuando una tarea requiere elevación, tiene los pasos siguientes:

  1. Punto de entrada. Las tareas que requieren elevación inmediata cuando UAC está totalmente habilitado tienen puntos de entrada marcados con el escudo UAC. En este caso, los usuarios deben esperar ver una interfaz de usuario de elevación inmediatamente después de hacer clic en estos comandos y deben ser más cautelosos cuando ven la interfaz de usuario de elevación desde tareas que no tienen un escudo.

    captura de pantalla de iconos de escudo uac y sus etiquetas

    En este ejemplo, los elementos del panel de control de cuentas de usuario y control de cuentas parentales requieren elevación.

    Cuando UAC está parcialmente habilitado o desactivado completamente, el escudo UAC todavía se muestra para indicar que la tarea implica cambios en el nivel del sistema y, por lo tanto, requiere elevación, incluso si es posible que el usuario no vea la interfaz de usuario de elevación. Mostrar siempre el escudo UAC para las tareas que requieren elevación mantiene la interfaz de usuario sencilla y predecible.

  2. Elevación. Para administradores protegidos, la tarea solicita consentimiento mediante la interfaz de usuario de consentimiento. Para los usuarios estándar, la tarea solicita credenciales de administrador mediante la interfaz de usuario de credenciales.

    captura de pantalla de de dos tipos de de elevación

    Estos ejemplos muestran la interfaz de usuario de credenciales y la interfaz de usuario de consentimiento.

  3. Proceso con privilegios elevados independientes. Internamente, se crea un nuevo proceso con privilegios elevados para realizar la tarea.

  4. Revierta a privilegios mínimos. Si es necesario, vuelva al privilegio mínimo para completar los pasos que no requieran elevación.

Tenga en cuenta que las tareas no "recuerden" estados elevados. Por ejemplo, si el usuario navega hacia atrás y hacia delante sobre un punto de entrada de elevación en un asistente, el usuario debe elevar cada vez.

Patrones de uso

El Control de cuentas de usuario tiene varios patrones de uso (en orden de preferencia):

  1. Trabajo para usuarios estándar. Diseñe la característica para todos los usuarios limitando su ámbito al usuario actual. Al limitar la configuración al usuario actual (en lugar de a todo el sistema), elimina la necesidad de una interfaz de usuario de elevación por completo y permite a los usuarios completar la tarea.

    incorrecto:

    captura de pantalla del mensaje: no tiene privilegios

    En este ejemplo, los usuarios de Windows XP tenían que tener privilegios administrativos para ver o cambiar la zona horaria actual.

    Correcto:

    captura de pantalla del cuadro de diálogo fecha y hora

    En este ejemplo, la característica de zona horaria se ha rediseñado en Windows 7 y Windows Vista para que funcione para todos los usuarios.

  2. Tener elementos de interfaz de usuario independientes para usuarios y administradores estándar. Separe claramente las tareas de usuario estándar de las tareas administrativas. Proporcione a todos los usuarios acceso a información útil de solo lectura. Identifique claramente las tareas administrativas con el escudo UAC.

    gráfico de escudo uac que muestra la elevación necesaria

    En este ejemplo, el elemento del panel de control Sistema muestra su estado para todos los usuarios, pero cambiar la configuración de todo el sistema requiere elevación.

  3. Permitir que los usuarios estándar intenten realizar tareas y elevar en caso de error. Si los usuarios estándar pueden ver la información y pueden realizar algunos cambios sin elevación, permitirles acceder a la interfaz de usuario y hacer que solo tengan privilegios elevados si se produce un error en la tarea. Este enfoque es adecuado cuando los usuarios estándar tienen acceso limitado, como con propiedades de sus propios archivos en el Explorador de Windows. También es adecuado para la configuración en las páginas del concentrador híbrido del Panel de control.

    captura de pantalla del acceso se deniega

    En este ejemplo, el usuario intentó cambiar las propiedades del archivo de programa, pero no tenía suficientes privilegios. El usuario puede elevar e intentarlo de nuevo.

  4. Solo funciona para administradores. Use este enfoque solo para las características y programas de administrador. Si una característica está pensada solo para administradores (y no tiene rutas de navegación ni información útil de solo lectura para los usuarios estándar), puede solicitar credenciales de administrador en el punto de entrada antes de mostrar cualquier interfaz de usuario. Use este enfoque para largos asistentes y flujos de página de cuando todas las rutas de acceso requieran privilegios administrativos.

    Si todo el programa es solo para los administradores, marcadores para solicitar credenciales de administrador para iniciarse. Windows muestra estos iconos de programa con la superposición del escudo UAC.

    captura de pantalla del logotipo de windows y la superposición de escudo uac

    En este ejemplo, el programa requiere privilegios administrativos para iniciarse.

Directrices

Icono de escudo UAC

  • Controles de visualización con el escudo UAC para indicar que la tarea requiere elevación inmediata cuando UAC está totalmente habilitado, incluso si UAC no está totalmente habilitado. Si todas las rutas de acceso de un asistente y flujo de página requieren elevación, muestre el escudo UAC en el punto de entrada de la tarea. El uso adecuado del escudo UAC ayuda a los usuarios a predecir cuándo se requiere elevación.

  • Si el programa admite varias versiones de Windows, muestre el escudo UAC si al menos una versión requiere elevación. Dado que Windows XP nunca requiere elevación, considere la posibilidad de quitar los escudos UAC para Windows XP si puede hacerlo de forma coherente y sin dañar el rendimiento.

  • No muestre el escudo UAC para tareas que no requieran elevación en la mayoría de los contextos. Dado que este enfoque a veces será engañoso, el enfoque preferido es usar un comando contextual protegido correctamente en su lugar.

    captura de pantalla de archivos de fotos en el explorador de Windows

    Dado que el comando Nueva carpeta requiere elevación solo cuando se usa en carpetas del sistema, se muestra sin un escudo UAC.

  • El escudo UAC se puede mostrar en los siguientes controles:

    botones Comando:

    captura de pantalla del botón de comando con el icono de escudo uac

    Botón de comando que requiere elevación inmediata.

    vínculos Comando:

    captura de pantalla del vínculo de comando con el icono de escudo uac

    Vínculo de comando que requiere elevación inmediata.

    vínculos de :

    captura de pantalla del vínculo de cambio de cuenta con uac shield

    Vínculo que requiere elevación inmediata.

    Menús de :

    captura de pantalla del menú con de escudo uac

    Un menú desplegable que requiere elevación inmediata.

  • Dado que las tareas no recuerdan estados elevados, no cambien el escudo UAC para reflejar el estado.

  • Muestra el escudo UAC incluso si el control de cuentas de usuario se ha desactivado o el usuario usa la cuenta de administrador integrada. Mostrar de forma coherente el escudo UAC es más fácil de programar y proporciona a los usuarios información sobre la naturaleza de la tarea.

Elevación

  • Siempre que sea posible, diseñe las tareas que realizarán los usuarios estándar sin elevación. Proporcione a todos los usuarios acceso a información útil de solo lectura.

  • Eleva por tarea, no por configuración. No combine la configuración de usuario estándar con la configuración administrativa en una sola página o cuadro de diálogo. Por ejemplo, si los usuarios estándar pueden cambiar algunas configuraciones, pero no todas, divida esa configuración como una superficie de interfaz de usuario independiente.

    incorrecto:

    captura de pantalla del cuadro de diálogo de configuración de fecha y hora

    En este ejemplo, la configuración de usuario estándar se mezcla incorrectamente con la configuración administrativa.

    Correcto:

    captura de pantalla del mismo cuadro de diálogo sin escudos uac

    En este ejemplo, la configuración para cambiar la fecha y la hora se encuentran en un cuadro de diálogo independiente, disponible solo para los administradores. La configuración de zona horaria está disponible para los usuarios estándar y no se mezcla con la configuración administrativa.

  • No considere la necesidad de elevar al determinar si se debe mostrar o deshabilitar un control. Esto se debe a:

    • En entornos no administrados, supongamos que los usuarios estándar podrían elevar al preguntar a un administrador. Deshabilitar los controles que requieren elevación impediría que los usuarios elevaran los administradores.
    • En entornos administrados, supongamos que los usuarios estándar no pueden elevar en absoluto. Quitar controles que requieren elevación impediría que los usuarios sepan cuándo dejar de buscar.
  • Para eliminar la elevación innecesaria:

    • Si una tarea puede requerir elevación, eleve lo más tarde posible. Si una tarea necesita una confirmación , muestre la interfaz de usuario de elevación solo después de que el usuario haya confirmado. Si una tarea siempre requiere elevación, elevación en su punto de entrada.
    • Una vez con privilegios elevados, mantenga los privilegios elevados hasta que ya no sean necesarios. Los usuarios no deben tener que elevar varias veces para realizar una sola tarea.
    • Si los usuarios deben elevar para realizar un cambio pero no realizar ningún cambio, deje los botones de confirmación positivos habilitados, pero controle la confirmación como cancelación. Al hacerlo, los usuarios tienen que elevar solo para cerrar una ventana.
    • incorrecto:
    • captura de pantalla de la ventana con solo un botón activo
    • En este ejemplo, el botón Guardar cambios está deshabilitado para evitar una elevación innecesaria, pero se habilita cuando los usuarios cambian la selección. Sin embargo, el botón de confirmación deshabilitado hace que parezca que los usuarios realmente no tienen una opción.
  • No muestre un mensaje de error cuando se produzca un error en las tareas porque los usuarios decidieron no elevar. Supongamos que los usuarios optaron intencionadamente por no continuar, por lo que no considerarán esta situación como un error.

    incorrecto:

    captura de pantalla del mensaje: la restauración de fabrikam no se puede ejecutar

    En este ejemplo, La restauración de Fabrikam proporciona incorrectamente un mensaje de error cuando el usuario decide no elevar.

  • No muestre advertencias para explicar que es posible que los usuarios necesiten elevar sus privilegios para realizar tareas. Permitir que los usuarios descubran este hecho por sí mismos.

  • Mostrar el escudo UAC y la interfaz de usuario de elevación en función de la tabla siguiente:

    Objeto Circunstancia Dónde colocar el escudo UAC Cuándo se debe elevar
    Programa
    Todo el programa es solo para administradores.
    captura de pantalla del logotipo de windows y la superposición de escudo uac
    Superposición de escudo UAC en el icono del programa.
    Muestra la interfaz de usuario de elevación al iniciar.
    Mandar
    Todo el comando es solo para administradores.
    captura de pantalla del vínculo de cambio de cuenta y de escudo uac
    Escudo UAC en el botón de comando o vínculo.
    Muestra la interfaz de usuario de elevación cuando se hace clic en el botón de comando o vínculo, pero después de cualquier confirmación.
    Mandar
    El comando muestra información útil de solo lectura adecuada para todos los usuarios, pero los cambios requieren privilegios administrativos.
    captura de pantalla del vínculo de cambio de configuración y de escudo uac
    Escudo UAC en el botón de comando o vínculo para realizar cambios.
    Muestra la interfaz de usuario de elevación cuando se hace clic en el botón de comando, pero después de cualquier confirmación.
    Mandar
    Los usuarios estándar pueden ver la información y posiblemente realizar algunos cambios sin elevación. permitir que los usuarios estándar intenten intentar y elevar en caso de error.
    captura de pantalla del error con el icono de uac en el botón reintentar
    No muestre el escudo UAC para el comando, pero muéstralo para el punto de entrada de elevación si se produce un error en el comando.
    Muestra la interfaz de usuario de elevación cuando el usuario vuelve a intentar el comando.
    Paso de tarea
    Todos los pasos posteriores requieren elevación.
    captura de pantalla del botón de comando siguiente con de escudo uac
    Escudo UAC en el botón Siguiente (o equivalente).
    Muestra la interfaz de usuario de elevación cuando se hace clic en siguiente u otro botón de confirmación.
    Paso de tarea
    Algunas ramas requieren elevación.
    captura de pantalla del vínculo de comando con de escudo uac
    Escudo UAC en vínculos de comandos que requieren elevación.
    Muestra la interfaz de usuario de elevación cuando se hace clic en los vínculos de comando con escudo UAC.

Interfaz de usuario de elevación

  • Si el usuario proporciona una cuenta que no es válida (nombre o contraseña) o no tiene privilegios de administrador, simplemente vuelva a reproducir la interfaz de usuario de credenciales. No muestre un mensaje de error.
  • Si el usuario cancela la interfaz de usuario de credenciales, vuelva a devolver el usuario a la interfaz de usuario original. No muestre un mensaje de error.
  • Si el control de cuentas de usuario se ha desactivado y un usuario estándar intenta realizar una tarea que requiere elevación, proporcione un mensaje de error que indique "Esta tarea requiere privilegios de administrador. Para realizar esta tarea, debe iniciar sesión con una cuenta de administrador".

captura de pantalla de la tarea requiere de mensajes de privilegios

En este ejemplo, el control de cuentas de usuario se ha desactivado para que un mensaje de error explique que el usuario debe usar una cuenta de administrador.

Asistentes

  • No eleva varias veces. Una vez que se eleva un asistente, debe permanecer elevado.
  • Si la tarea se realiza dentro del asistente, coloque un escudo UAC en el botón "Siguiente" de la página Confirmar (que debe tener una etiqueta más específica). Cuando el usuario confirma:
    • Si la página siguiente es una página Progreso, avance a esa página y muestre la interfaz de usuario de elevación de forma modáctica. Después de realizar la elevación correcta, realice la tarea.
    • Si la página siguiente es una página Finalización, avance a esa página (pero reemplace temporalmente su contenido por "Esperando permiso...") y muestre la interfaz de usuario de elevación de forma modal. Después de realizar la elevación correcta, realice la tarea y, a continuación, muestre el contenido de la página Finalización.
    • Si el usuario cancela la interfaz de usuario de elevación, vuelva a la página Confirmar. Si lo hace, el usuario puede intentarlo de nuevo.
  • Si la tarea se realiza después de que se complete el asistente, coloque un escudo UAC en el botón "Finalizar" de la página Confirmar (que debe tener una etiqueta más específica). Cuando el usuario confirma:
    • Permanezca en la página Confirmar y muestre la interfaz de usuario de elevación de forma modáctica. Después de realizar la elevación correcta, cierre el asistente.
    • Si el usuario cancela la interfaz de usuario de elevación, vuelva a la página Confirmar. Si lo hace, el usuario puede intentarlo de nuevo.
  • Para asistentes largos diseñados solo para administradores, puede solicitar credenciales de administrador en el punto de entrada antes de mostrar cualquier interfaz de usuario.

Mensaje de texto

  • No use puntos suspensivos solo porque un comando requiere elevación. La necesidad de elevar se indica con el escudo UAC.

Documentación

Al hacer referencia al control de cuentas de usuario:

  • Consulte la característica como Control de cuentas de usuario (en la primera mención) o UAC (en menciones posteriores), no cuenta de usuario con privilegios mínimos o LUA.
  • Consulte usuarios no administradores como usuarios estándar.
  • Consulte Administradores de equipos integrados como administradores integrados.

En la documentación del usuario:

  • Consulte el acto de dar su consentimiento para realizar una tarea administrativa como conceder permiso.

En programación y otra documentación técnica:

  • Consulte el acto de dar su consentimiento para realizar una tarea administrativa como elevación.
  • En el contexto de UAC, consulte a los administradores como administradores protegidos cuando no se elevan y Administradores elevados después de la elevación.
  • Consulte el cuadro de diálogo que se usa para escribir contraseñas como la interfaz de usuario de credenciales. Consulte el cuadro de diálogo usado para dar su consentimiento como interfaz de usuario de consentimiento. Consulte generalmente como interfaz de usuario de elevación.