Masquerade

Permite a usuarios privilegiados cambiar temporalmente a otra cuenta de usuario mientras se mantiene un registro de la cuenta original para facilitar el regreso.

masquerade
60,104 sites
128
drupal.org

Install

Drupal 11, 10, 9 v8.x-2.0
composer require 'drupal/masquerade:8.x-2.0'

Overview

El módulo Masquerade proporciona una forma segura e intuitiva para que los administradores y usuarios privilegiados asuman temporalmente la identidad de otra cuenta de usuario. Esto es particularmente útil para depuración, pruebas de funcionalidad específica del usuario o para proporcionar soporte a los usuarios experimentando el sitio desde su perspectiva.

El módulo rastrea la cuenta de usuario original en la sesión, permitiendo a los usuarios volver fácilmente a su propia cuenta en cualquier momento. Masquerade se integra perfectamente con la interfaz de usuario incorporada de Drupal, incluyendo el módulo Toolbar y los enlaces contextuales, proporcionando una experiencia de usuario sin fricciones.

La seguridad es un principio de diseño central de Masquerade. El mecanismo de control de acceso incorporado previene la escalada de privilegios por defecto - los usuarios solo pueden hacerse pasar por usuarios con permisos iguales o menores que los suyos. El UID 1 (superadministrador) puede hacerse pasar por cualquiera, pero nadie puede hacerse pasar por el UID 1 sin permiso explícito.

Features

  • Cambiar temporalmente a otra cuenta de usuario preservando la sesión original para un fácil retorno
  • Formulario de bloque con autocompletado habilitado para cambio rápido de usuario por nombre de usuario
  • Integración con Toolbar mostrando enlace 'Dejar de suplantar' cuando se está suplantando
  • Operación de entidad 'Suplantar como' en la página de listado administrativo de usuarios
  • Permisos basados en roles permitiendo control granular sobre quién puede suplantar qué roles
  • Seguridad incorporada que previene la escalada de privilegios por defecto
  • Control de acceso personalizado vía hook_masquerade_access para control detallado
  • Seguimiento de suplantación basado en sesión con contexto de caché dedicado
  • Configuración opcional para controlar si la suplantación actualiza la hora de último acceso del usuario objetivo
  • Campo extra en la visualización de usuario para mostrar enlace de suplantación
  • Soporte de migración mapeando permisos de D7 a equivalentes de D8/D9

Use Cases

Soporte al cliente y depuración

El personal de soporte puede suplantar a un cliente para ver exactamente lo que ellos ven, diagnosticar problemas de permisos o reproducir errores reportados sin necesitar la contraseña del cliente. Después de resolver el problema, pueden inmediatamente volver a su propia cuenta.

Revisión de contenido por editores

Los editores pueden suplantar a autores de contenido para verificar que el contenido enviado aparece correctamente desde la perspectiva del autor, verificando la visibilidad apropiada de campos, restricciones de acceso y estados de flujo de trabajo.

Capacitación y documentación

Los administradores que crean materiales de capacitación pueden suplantar usuarios con diferentes roles para capturar capturas de pantalla precisas mostrando exactamente lo que cada rol ve, asegurando que la documentación refleje la experiencia real del usuario.

Pruebas de acceso basado en roles

Durante el desarrollo o configuración del sitio, los desarrolladores pueden suplantar usuarios con roles específicos para probar que los permisos y restricciones de acceso funcionan correctamente sin crear múltiples cuentas de prueba.

Asistencia en incorporación de usuarios

Los administradores pueden suplantar usuarios recién creados para completar la configuración inicial del perfil, configurar preferencias o realizar otras tareas de incorporación en nombre de usuarios que puedan necesitar asistencia.

Tips

  • El UID 1 (superadministrador) siempre puede suplantar a cualquier usuario sin permisos adicionales, pero otorgar explícitamente el permiso 'Suplantar como superusuario' es requerido para que otros puedan suplantar al UID 1
  • El módulo usa seguimiento basado en sesión, por lo que la suplantación sobrevive a la navegación de páginas pero termina cuando la sesión expira o el navegador se cierra
  • Use el bloque Masquerade para acceso rápido al formulario de suplantación, o use la operación 'Suplantar como' del listado de usuarios para suplantación directa
  • La suplantación dispara tanto hook_user_logout (para el usuario original) como hook_user_login (para el usuario objetivo), permitiendo que otros módulos respondan al cambio
  • El control de acceso personalizado puede implementarse vía hook_masquerade_access para escenarios como permitir suplantación como usuario 'demo' sin requerir permisos amplios

Technical Details

Admin Pages 3
Masquerade /masquerade

Una página que contiene el formulario de suplantación que permite a los usuarios cambiar a otra cuenta de usuario ingresando un nombre de usuario. Esta página es accesible para cualquier usuario que tenga al menos un permiso de suplantación.

Suplantar como usuario /user/{user}/masquerade

URL de acción directa para suplantar a un usuario específico. Esta ruta típicamente se accede vía la operación 'Suplantar como' en el listado de usuarios o desde el enlace de suplantación en perfiles de usuario.

Dejar de suplantar /unmasquerade

Cambia al usuario de vuelta a su cuenta original. Solo accesible cuando el usuario está actualmente suplantando.

Permissions 3
Suplantar como cualquier usuario excepto superusuario

Permite al usuario suplantar cualquier cuenta de usuario excepto el UID 1 (superadministrador). Este es un permiso restringido que solo debe otorgarse a roles altamente confiables.

Suplantar como superusuario (UID 1)

Permite al usuario suplantar la cuenta de superadministrador (UID 1). Este es un permiso extremadamente sensible que otorga el nivel más alto de acceso.

Suplantar como [Nombre del Rol]

Permiso generado dinámicamente para cada rol en el sistema (excluyendo anónimo). Permite suplantar usuarios que tienen este rol específico. Para suplantar a un usuario, necesita permisos para TODOS sus roles.

Hooks 1
hook_masquerade_access

Controla el acceso para suplantar a un usuario objetivo específico. Este hook permite a los módulos implementar lógica de acceso personalizada más allá de las verificaciones basadas en permisos por defecto.

Troubleshooting 5
No se puede suplantar a un usuario específico

Verifique que tiene los permisos apropiados. Necesita el permiso 'Suplantar como cualquier usuario', o permisos 'Suplantar como [rol]' para TODOS los roles que tiene el usuario objetivo. El UID 1 requiere el permiso especial 'Suplantar como superusuario'.

La operación 'Suplantar como' no aparece en el listado de usuarios

La operación solo aparece para usuarios que tiene permiso de suplantar. Si el usuario objetivo tiene permisos que usted no tiene, el enlace no aparecerá debido a la protección incorporada contra escalada de privilegios.

No se puede suplantar mientras ya se está suplantando

Debe volver a su cuenta original antes de suplantar a un usuario diferente. Use el enlace 'Dejar de suplantar' en la barra de herramientas o menú de usuario.

La hora de último acceso del usuario se actualiza mientras se suplanta

Este comportamiento puede controlarse vía la configuración 'update_user_last_access' en masquerade.settings.yml. Establézcalo en FALSE para prevenir actualizaciones mientras se suplanta.

El bloque Masquerade no es visible

Asegúrese de que el bloque está colocado en una región visible, y que tiene al menos un permiso de suplantación. El bloque está oculto para usuarios anónimos y para usuarios que actualmente están suplantando (a menos que 'Mostrar enlace para dejar de suplantar' esté habilitado).

Security Notes 7
  • El control de acceso por defecto de Masquerade previene la escalada de privilegios - los usuarios no pueden suplantar a alguien con más permisos que ellos mismos
  • El UID 1 recibe protección especial: solo usuarios con el permiso explícito 'Suplantar como superusuario' pueden suplantar al superadministrador
  • Los permisos 'Suplantar como cualquier usuario' y 'Suplantar como superusuario' solo deben otorgarse a roles administrativos altamente confiables
  • Todos los eventos de suplantación se registran incluyendo quién suplantó a quién y cuándo volvieron
  • La protección de token CSRF se aplica en las rutas de suplantar y dejar de suplantar
  • La regeneración de sesión ocurre durante el cambio para prevenir ataques de fijación de sesión
  • La suplantación de usuarios anónimos intencionalmente no está soportada - use navegación privada en su lugar