Force Password Change
Permite a los administradores forzar a los usuarios a cambiar sus contraseñas por rol, usuario individual o mediante políticas de expiración de contraseñas.
force_password_change
Instalar
composer require 'drupal/force_password_change:^2.0'
Overview
El módulo Force Password Change proporciona capacidades integrales de aplicación de cambio de contraseña para sitios Drupal. Los administradores pueden forzar a los usuarios a cambiar sus contraseñas mediante múltiples métodos: por rol (forzando a todos los usuarios en un rol específico), por usuario individual (desde su página de edición de perfil), o automáticamente cuando las contraseñas expiran después de un período de tiempo configurado.
El módulo admite tanto la aplicación inmediata (en cada carga de página) como la aplicación solo al iniciar sesión, dando a los administradores del sitio flexibilidad en cuán estrictamente se aplican los cambios de contraseña. Cuando se requiere un cambio de contraseña, los usuarios son redirigidos automáticamente a su página de edición de perfil donde deben ingresar una nueva contraseña antes de continuar usando el sitio.
Además, el módulo puede requerir que todos los usuarios nuevos cambien su contraseña en el primer inicio de sesión, asegurando que las cuentas creadas por administradores estén protegidas con contraseñas elegidas por el usuario. Hay estadísticas completas disponibles que muestran cambios de contraseña pendientes, fechas de último forzado y fechas de último cambio de contraseña para cada usuario y rol.
Features
- Forzar a todos los usuarios en un rol específico a cambiar su contraseña inmediatamente o en el próximo inicio de sesión
- Forzar a usuarios individuales a cambiar su contraseña desde su página de edición de perfil (user/[UID]/edit)
- Establecer períodos de expiración de contraseña por rol (por ejemplo, requerir cambios de contraseña cada 30 días, 90 días o 1 año)
- Forzar a todos los usuarios recién creados a cambiar su contraseña en el primer inicio de sesión (configuración global del sitio)
- Opción para forzar el cambio de contraseña en el primer inicio de sesión al crear usuarios individuales
- Estadísticas de cambio de contraseña en las páginas de edición de usuarios mostrando estado pendiente, fecha de último forzado y fecha de último cambio de contraseña
- Páginas de estado por rol mostrando todos los usuarios en el rol con sus detalles de cambio de contraseña
- Modo de aplicación configurable: verificar en cada carga de página (más seguro) o solo al iniciar sesión (menos sobrecarga)
- Expiración de contraseña basada en prioridad cuando los usuarios tienen múltiples roles (el rol de mayor prioridad determina la expiración)
- Opción de desactivación de emergencia mediante settings.php si el sitio se vuelve inaccesible
- Enlace a las opciones de forzar cambio de contraseña añadido a las operaciones de gestión de roles
Use Cases
Aplicar Cambios de Contraseña Después de una Brecha de Seguridad
Cuando ocurre un incidente de seguridad, los administradores pueden forzar inmediatamente a todos los usuarios (o roles específicos) a cambiar sus contraseñas. Navegar a /admin/config/people/force_password_change, seleccionar la casilla del rol 'Usuario autenticado' y enviar. Todos los usuarios deberán cambiar su contraseña en su próxima carga de página o inicio de sesión.
Implementar Políticas de Expiración de Contraseñas para Cumplimiento
Las organizaciones que requieren rotación regular de contraseñas para cumplimiento pueden configurar la expiración de contraseñas. Habilitar 'Habilitar expiración de contraseña', luego establecer períodos de tiempo para cada rol (por ejemplo, 90 días para usuarios regulares, 30 días para administradores). Usar el sistema de peso/prioridad para asegurar que los roles de administrador tengan precedencia.
Asegurar Cuentas Creadas por Administradores
Al crear cuentas para nuevos empleados, habilitar 'Forzar cambio de contraseña en primer inicio de sesión' para asegurar que la contraseña temporal establecida por los administradores sea reemplazada con una contraseña elegida por el usuario. Alternativamente, marcar la casilla 'Forzar cambio de contraseña en primer inicio de sesión' por usuario al crear cuentas individuales.
Auditar el Cumplimiento de Cambio de Contraseñas
Usar las páginas de estado específicas por rol en /admin/config/people/force_password_change/list/{rid} para ver qué usuarios tienen cambios de contraseña pendientes y cuándo cada usuario cambió su contraseña por última vez. Esto ayuda a identificar usuarios que pueden no estar cumpliendo con las políticas de contraseñas.
Forzar Cambios de Contraseña para Usuarios Específicos
Cuando las credenciales de un usuario específico pueden haber sido comprometidas, navegar a su página de edición de perfil (user/[UID]/edit) y marcar 'Forzar a este usuario a cambiar su contraseña'. El usuario deberá cambiar su contraseña en su próxima carga de página o inicio de sesión.
Tips
- Usar el modo 'Solo al iniciar sesión' para sitios donde los usuarios permanecen conectados por períodos largos y los cambios inmediatos de contraseña no son críticos - esto reduce la sobrecarga de rendimiento.
- Configurar diferentes períodos de expiración para diferentes roles - los administradores pueden necesitar cambios de contraseña más frecuentes (30 días) que los usuarios regulares (90 días).
- El sistema de prioridad/peso para expiración se aplica cuando un usuario tiene múltiples roles - asegurar que las reglas de expiración más restrictivas tengan la mayor prioridad (menor peso).
- El módulo se integra con la página de gestión de roles en /admin/people/roles, añadiendo 'Opciones de forzar cambio de contraseña' al menú desplegable de operaciones de cada rol para acceso rápido.
- Las estadísticas de contraseña en las páginas de edición de usuarios ayudan a los administradores a verificar que los usuarios están cumpliendo con los requisitos de cambio de contraseña.
Technical Details
Admin Pages 2
/admin/config/people/force_password_change
Página de configuración principal del módulo Force Password Change. Permite a los administradores configurar políticas de aplicación de contraseñas, forzar cambios de contraseña por rol y establecer reglas de expiración de contraseñas.
/admin/config/people/force_password_change/list/{rid}
Muestra el estado detallado de cambio de contraseña para todos los usuarios en un rol específico. Muestra dos tablas: usuarios con cambios de contraseña pendientes y usuarios sin cambios pendientes. Incluye estadísticas sobre cuándo cada usuario fue forzado por última vez a cambiar su contraseña y cuándo la cambió por última vez.
Permisos 1
Hooks 5
hook_form_alter
Modifica formularios relacionados con usuarios para añadir funcionalidad de cambio de contraseña. Modifica el formulario de edición de rol para añadir una casilla de 'forzar cambio de contraseña', el formulario de perfil de usuario para añadir controles de cambio de contraseña y estadísticas, y el formulario de registro de usuario para añadir la opción de forzado en primer inicio de sesión.
hook_user_login
Verifica si el usuario debe ser forzado a cambiar su contraseña cuando el modo 'verificar solo al iniciar sesión' está habilitado. Si hay un forzado pendiente, redirige al usuario a su página de edición de perfil.
hook_user_insert
Maneja la creación de nuevos usuarios. Si la configuración global 'forzar cambio de contraseña en primer inicio de sesión' está habilitada, marca la nueva cuenta de usuario para requerir un cambio de contraseña en su primer inicio de sesión.
hook_user_delete
Limpia los datos del módulo cuando se elimina una cuenta de usuario. Elimina la entrada del usuario de la tabla force_password_change_uids.
hook_entity_type_alter
Modifica el tipo de entidad user_role para usar una clase de constructor de lista personalizada que añade 'Opciones de forzar cambio de contraseña' al menú desplegable de operaciones en la página de gestión de roles.
Troubleshooting 4
Editar settings.php y añadir: $config['force_password_change.settings']['enabled'] = FALSE; Esto deshabilita temporalmente la funcionalidad del módulo. Después de resolver el problema, eliminar la línea para volver a habilitar.
Verificar la configuración 'Verificar cambio de contraseña pendiente'. Si está establecido en 'Solo al iniciar sesión', los usuarios solo serán notificados en su próximo inicio de sesión, no inmediatamente. Para aplicación inmediata, cambiar a 'En cada carga de página'.
La expiración de contraseña usa un sistema de prioridad basado en el peso del rol. Asegurar que los roles estén ordenados correctamente arrastrándolos en la tabla de configuración de expiración. El rol más alto en la lista tiene precedencia.
Asegurar que 'Forzar cambio de contraseña en primer inicio de sesión' esté habilitado en la configuración del módulo. Los usuarios creados antes de que esta configuración fuera habilitada o antes de que el módulo fuera instalado no serán afectados.
Security Notes 4
- Este módulo ayuda a aplicar higiene de contraseñas pero no aplica complejidad de contraseñas - considerar combinarlo con un módulo de política de contraseñas.
- La desactivación de emergencia mediante settings.php solo debe usarse temporalmente - volver a habilitar el módulo tan pronto como se resuelva el problema.
- Al forzar cambios de contraseña después de una sospecha de brecha, también considerar invalidar las sesiones existentes usando Session Limit o módulos similares.
- El módulo previene que los usuarios reutilicen su contraseña actual cuando son forzados a cambiar, pero no previene reutilizar contraseñas antiguas - considerar controles adicionales de historial de contraseñas si es necesario.