Control de cuentas del usuario - User Account Control

  • 12 minutos para leer

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

Con el Control de cuentas de usuario (UAC) completamente habilitado, los administradores interactivos normalmente se ejecutan con menos privilegios de usuario, pero pueden auto-elevarse para realizar tareas administrativas dando su consentimiento explícito con la IU de consentimiento. Estas tareas administrativas incluyen la instalación de software y controladores, el cambio de la configuración de todo el sistema, la visualización o el cambio de otras cuentas de usuario y la ejecución de herramientas administrativas.

En su estado con menos privilegios, 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 pedirle a un administrador que los eleve mediante la IU de credenciales. La cuenta de administrador incorporado no requiere elevación.

captura de pantalla del mensaje de seguridad 'Permitir programa'

La IU de consentimiento, utilizada para elevar a los administradores protegidos para que tengan privilegios administrativos.

captura de pantalla del mensaje pidiendo contraseña

La IU de credenciales, utilizada para elevar a los usuarios estándar.

UAC proporciona los siguientes beneficios:

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

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

En Windows Vista, los administradores protegidos pueden elegir recibir notificaciones sobre todos los cambios del sistema o ninguno. La configuración predeterminada de UAC es notificar sobre todos los cambios, independientemente de su origen. Cuando se le notifique, se atenuará su escritorio y debe aprobar o rechazar la solicitud en el cuadro de diálogo de UAC antes de poder hacer algo más en su computadora. La atenuación de su escritorio se conoce como escritorio seguro porque otros programas no pueden ejecutarse mientras está atenuado.

Windows 7 introduce dos configuraciones de UAC intermedias para administradores protegidos, además de las dos de Windows Vista. La primera es notificar a los usuarios solo cuando un programa está realizando el cambio, de modo que los administradores se elevan automáticamente cuando realizan un cambio ellos mismos. Esta es la configuración predeterminada de UAC en Windows 7, y también hace uso del escritorio seguro.

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

captura de pantalla de cuatro configuraciones de uac en windows 7

Windows 7 introduce dos configuraciones de UAC intermedias.

Nota: las pautas relacionadas con la escritura del código para respaldar el control de cuentas de usuario se presentan en un artículo separado.

Conceptos de diseño

Metas

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

  • Eliminar la elevación innecesaria. Los usuarios deben tener que elevarse solo para realizar tareas que requieren 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 innecesarios al escribir en las secciones de registro de HKLM o HKCR, o en las carpetas Archivos de programa o Sistema de Windows.
  • Sé predecible. Los usuarios estándar necesitan saber qué tareas requieren que un administrador realice o no se puede realizar en los entornos administrados. Los administradores necesitan saber qué tareas requieren elevación. Si no pueden predecir la necesidad de elevación con precisión, es más probable que den su consentimiento para tareas administrativas cuando no deberían hacerlo.
  • Requieren esfuerzo mínimo. Las tareas que requieren privilegios administrativos deben diseñarse para requerir una sola elevación. Las tareas que requieren múltiples elevaciones se vuelven tediosas rápidamente.
  • Volver a los privilegios mínimos. Una vez que se completa una tarea que requiere privilegios administrativos, el programa debe volver al estado de privilegio mínimo.

Flujo de tareas de elevación

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

  1. Punto de entrada. Las tareas que requieren una elevación inmediata cuando UAC está completamente habilitado tienen puntos de entrada marcados con el escudo UAC. En este caso, los usuarios deben esperar ver una IU de Elevación inmediatamente después de hacer clic en dichos comandos y deben tener mucho cuidado cuando ven la IU de Elevación desde tareas que no tienen un escudo.

    Captura de pantalla de los íconos del escudo de uac y sus etiquetas.

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

    Cuando el UAC está parcialmente habilitado o apagado por completo, el escudo UAC aún se muestra para indicar que la tarea implica cambios a nivel del sistema y, por lo tanto, requiere elevación, incluso si el usuario no puede ver la IU de Elevación. Siempre mostrando el escudo de UAC para las tareas que requieren elevación, la interfaz de usuario es simple y predecible.

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

    Captura de pantalla de dos tipos de elevación.

    Estos ejemplos muestran la IU de credenciales y la IU de consentimiento.

  3. Proceso elevado separado. Internamente, se crea un nuevo proceso elevado para realizar la tarea.

  4. Volver al privilegio mínimo. Si es necesario, vuelva al privilegio mínimo para completar cualquier paso que no requiera elevación.

Tenga en cuenta que las tareas no "recuerdan" los estados elevados. Por ejemplo, si el usuario navega hacia adelante y hacia atrás 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 función para todos los usuarios limitando su alcance al usuario actual. Al limitar la configuración al usuario actual (a diferencia de todo el sistema), elimina la necesidad de una IU de Elevation por completo y permite a los usuarios completar la tarea.

    Incorrecto:

    captura de pantalla del mensaje: no tienes privilegio

    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 de fecha y hora

    En este ejemplo, la función de zona horaria se rediseñó en Windows 7 y Windows Vista para que funcione para todos los usuarios.

  2. Tener elementos de IU separados para usuarios y administradores estándar. Separe claramente las tareas estándar de los usuarios de las tareas administrativas. Otorgue a todos los usuarios acceso a información útil de solo lectura. Identifica claramente las tareas administrativas con el escudo UAC.

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

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

  3. Permitir que los usuarios estándar intenten la tarea y aumenten el error. Si los usuarios estándar pueden ver la información y pueden realizar algunos cambios sin elevación, permítales acceder a la interfaz de usuario y hacer que se eleven solo si la tarea falla. Este enfoque es adecuado cuando los usuarios estándar tienen acceso limitado, como las 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.

    se niega el mensaje de captura de pantalla de acceso

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

  4. Trabajo solo para administradores. ¡Utilice este enfoque solo para funciones y programas de administrador! Si una función está destinada solo para administradores (y no tiene rutas de navegación ni información útil de solo lectura para los usuarios estándar), puede solicitar las credenciales de administrador en el punto de entrada antes de mostrar cualquier IU. Utilice este enfoque para asistentes y flujos de página prolongados cuando todas las rutas requieren privilegios administrativos.

    Si todo el programa es solo para administradores, márquelo para solicitar credenciales de administrador para poder iniciarlo. Windows muestra dichos iconos de programa con la superposición de escudo UAC.

    Captura de pantalla del logo de windows y superposición de escudo uac

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

Pautas

Icono de escudo UAC

  • Los controles de la pantalla con el escudo UAC indican que la tarea requiere una elevación inmediata cuando UAC está completamente habilitado, incluso si UAC no está habilitado actualmente. Si todas las rutas de un asistente y el flujo de la página requieren elevación, muestre el escudo de 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 la elevación.

  • Si su programa es compatible con varias versiones de Windows, muestre el escudo UAC si al menos una versión requiere elevación. Debido a que Windows XP nunca requiere elevación, considere eliminar los escudos de UAC para Windows XP si puede hacerlo de manera consistente y sin dañar el rendimiento.

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

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

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

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

    Botones de comando:

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

    Un botón de comando que requiere elevación inmediata.

    Enlaces de comando:

    Captura de pantalla del enlace de comando con el icono de escudo uac

    Un enlace de comando que requiere elevación inmediata.

    Campo de golf:

    Captura de pantalla del enlace de la cuenta de cambio con escudo uac.

    Un enlace que requiere elevación inmediata.

    Menús:

    Captura de pantalla del menú con escudo uac.

    Un menú desplegable que requiere elevación inmediata.

  • Debido a que las tareas no recuerdan estados elevados, no cambie el escudo UAC para reflejar el estado.

  • Muestre el escudo UAC incluso si el Control de cuentas de usuario se ha desactivado o si el usuario está utilizando la cuenta de Administrador integrado. La visualización constante del escudo UAC es más fácil de programar y brinda a los usuarios información sobre la naturaleza de la tarea.

Elevación

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

  • Elevar por tarea, no por configuración. No mezcle configuraciones de usuario estándar con configuraciones administrativas 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 esas configuraciones como una superficie de IU separada.

    Incorrecto:

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

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

    Correcto:

    Captura de pantalla del mismo cuadro de diálogo sin escudos uac.

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

  • No considere la necesidad de elevar al determinar si un control debe mostrarse o desactivarse. Esto es porque:

    • En entornos no administrados, suponga que los usuarios estándar podrían elevarse preguntando a un administrador. Deshabilitar los controles que requieren elevación evitaría que los usuarios hagan que los administradores eleven.
    • En entornos administrados, asuma que los usuarios estándar no pueden elevar en absoluto. Eliminar los controles que requieren elevación evitaría que los usuarios sepan cuándo dejar de mirar.
  • Para eliminar la elevación innecesaria:

    • Si una tarea puede requerir elevación, elevar lo más tarde posible. Si una tarea necesita una confirmación , muestre la IU de elevación solo después de que el usuario haya confirmado. Si una tarea siempre requiere elevación, elevar en su punto de entrada.
    • Una vez elevado, manténgase elevado hasta que los privilegios elevados ya no sean necesarios. Los usuarios no deberían tener que elevarse varias veces para realizar una sola tarea.
    • Si los usuarios deben realizar una elevación para realizar un cambio, pero optan por no hacer ningún cambio, deje habilitados los botones de confirmación positivos pero manejen la confirmación como una cancelación. Al hacerlo, se elimina la necesidad de elevar los usuarios solo para cerrar una ventana.
    • Incorrecto:
    • Captura de pantalla de la ventana con un solo 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 desactivado hace que parezca que los usuarios realmente no tienen otra opción.
  • No muestre un mensaje de error cuando las tareas fallan porque los usuarios decidieron no elevar. Suponga que los usuarios decidieron intencionalmente no continuar, por lo que no considerarán esta situación como un error.

    Incorrecto:

    captura de pantalla del mensaje: fabrikam restore no se puede ejecutar

    En este ejemplo, Fabrikam Restore muestra incorrectamente un mensaje de error cuando el usuario decide no elevar.

  • No muestre advertencias para explicar que los usuarios podrían necesitar elevar sus privilegios para realizar tareas. Deje que los usuarios descubran este hecho por su cuenta.

  • Muestre el escudo de UAC y la interfaz de usuario de elevación según la siguiente tabla:

    Objeto Circunstancia Donde colocar el escudo UAC. Cuando elevar
    Programa
    El programa completo es solo para administradores.
    Captura de pantalla del logo de windows y superposición de escudo uac
    Escudo de escudo UAC en el icono del programa.
    Mostrar la interfaz de usuario de elevación en el lanzamiento.
    Mando
    El comando completo es solo para administradores.
    Captura de pantalla del enlace de cambio de cuenta y escudo uac.
    Escudo UAC en botón de comando o enlace.
    Mostrar la interfaz de usuario de elevación cuando se hace clic en el botón de comando o el enlace, pero después de cualquier confirmación.
    Mando
    El comando muestra información útil de solo lectura apropiada para todos los usuarios, pero los cambios requieren privilegios administrativos.
    Captura de pantalla del enlace de configuración de cambio y escudo uac.
    Escudo UAC en el botón de comando o enlace para hacer cambios.
    Mostrar la interfaz de usuario de elevación cuando se hace clic en el botón de comando, pero después de cualquier confirmación.
    Mando
    Los usuarios estándar pueden ver la información y posiblemente realizar algunos cambios sin elevación. Permitir a los usuarios estándar intentar, y elevarse ante fallas.
    Captura de pantalla del error con el icono de uac en el botón de reintento
    No muestre el escudo UAC para el comando, pero muéstrelo para el punto de entrada de elevación si el comando falla.
    Mostrar la IU de elevación cuando el usuario reintenta el comando.
    Paso de tarea
    Todos los pasos posteriores requieren elevación.
    Captura de pantalla del siguiente botón de comando con escudo uac.
    Escudo UAC en el botón Siguiente (o equivalente).
    Mostrar la IU 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 enlace de comando con escudo uac.
    Escudo UAC en los enlaces de comando que requieren elevación.
    Mostrar la IU de elevación cuando se hace clic en los enlaces de comando con el escudo UAC.

Elevación de la interfaz de usuario

  • Si el usuario proporciona una cuenta que no es válida (nombre o contraseña) o no tiene privilegios de administrador, simplemente vuelva a mostrar la IU de credenciales. No mostrar un mensaje de error.
  • Si el usuario cancela la IU de credenciales, devuelva el usuario a la IU original. No mostrar 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 privilegios mensaje

En este ejemplo, el Control de cuentas de usuario se ha desactivado, por lo que un mensaje de error explica que el usuario debe usar una cuenta de administrador.

Magos

  • No elevar varias veces. Una vez que el mago está elevado, debe mantenerse elevado.
  • Si la tarea se realiza dentro del asistente, coloque un escudo de UAC en el botón "Siguiente" de la página Confirmar (que debe tener una etiqueta más específica ). Cuando el usuario se compromete:
    • Si la página siguiente es una página de progreso, avance a esa página y muestre modalmente la IU de elevación. Después de la elevación exitosa, realice la tarea.
    • Si la página siguiente es una página de finalización, avance a esa página (pero reemplace temporalmente su contenido con "En espera de permiso ...") y muestre modalmente la IU de elevación. Después de una elevación exitosa, realice la tarea y, a continuación, muestre el contenido de la página Finalización.
    • Si el usuario cancela la IU de elevación, vuelva a la página Confirmar. Hacerlo le permite al usuario intentarlo de nuevo.
  • Si la tarea se realiza después de que finalice el asistente, coloque un escudo de UAC en el botón "Finalizar" de la página Confirmar (que debe tener una etiqueta más específica ). Cuando el usuario se compromete:
    • Permanezca en la página Confirmar y visualice modalmente la IU de elevación. Después de la elevación exitosa, cierre el asistente.
    • Si el usuario cancela la IU de elevación, vuelva a la página Confirmar. Hacerlo le permite al usuario intentarlo de nuevo.
  • Para asistentes prolongados destinados solo a administradores, puede solicitar credenciales de administrador en el punto de entrada antes de mostrar cualquier UI.

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 referirse al Control de Cuenta de Usuario:

  • Consulte la función como Control de cuenta de usuario (en la primera mención) o UAC (en la mención posterior), no como cuenta de usuario con privilegios mínimos o LUA.
  • Consulte a los no administradores como usuarios estándar.
  • Consulte a los administradores de computadoras incorporados como Administradores integrados.

En la documentación del usuario:

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

En programación y demás documentación técnica:

  • Refiérase al acto de dar consentimiento para realizar una tarea administrativa como elevación.
  • En el contexto de UAC, consulte a los administradores como administradores protegidos cuando no están elevados y los administradores elevados después de la elevación.
  • Consulte el cuadro de diálogo utilizado para ingresar contraseñas como la IU de credenciales. Consulte el cuadro de diálogo utilizado para otorgar el consentimiento como la IU de consentimiento. Refiérase a ambos en general como Elevación UI.

 

 

 

 

 

Referencias

Microsoft - Control de cuentas del usuario - User Account Control

 

 

 



error: Contenido protegido