WordPress Hosting

Cómo añadir perfiles de usuario a la identificación de dos factores 2FA del plugin Security Optimizer

Como ya sabes que uso principalmente como plugin de seguridad Security Optimizer, además de otras medidas de protección, no paro de buscar maneras de optimizar su uso y prestaciones, y algo que echaba en falta en el plugin es poder aplicar la doble verificación en el acceso, el 2FA, a otros perfiles además de los habilitados por defecto.

Por si no lo sabías, el plugin Security Optimizer, por defecto, si activas la doble verificación solo se aplica, solo se la pide, a los usuarios con perfil de administrador y editor, pero a ninguno más. Pues bien, aquí tienes cómo añadir otros perfiles a esta importante medida de protección de tu web…

Activa la identificación de dos factores de Security Optimizer en tu web

Es obvio pero sí, antes de nada debes activar la característica de doble verificación en los ajustes del plugin Security Optimizer, sino nada de lo siguiente funcionará.

Ve a la página de ajustes del plugin, a la pantalla de seguridad en el acceso, y activa la funcionalidad de identificación de dos factores.

activar 2fa plugin security optimizer siteground

Añade perfiles a la identificación de dos factores de Security Optimizer

Para que la protección de 2FA de Security Optimizer afecte a más perfiles de usuario que a los por defecto (administradores y editores) hay una función que puedes añadir a tu web, y con este poquito de código añadir tantos perfiles a la doble verificación como necesites. Aquí tienes un ejemplo:

/* 2FA a más perfiles de usuario con Security Optimizer de SG */
add_filter( 'sg_security_2fa_roles', 'ayudawp_2fa_mas_perfiles' );
function ayudawp_2fa_mas_perfiles( $roles ) {
$roles[] = 'author'; // Para el perfil de autor
$roles[] = 'shop-manager'; // Para el perfil de gestor de tienda
return $roles;
}

El truco está en añadir una línea ($roles[] = 'slug-del-perfil';) por cada perfil de usuario al que quieras requerir la identificación de dos factores 2FA con el plugin Security Optimizer

En el ejemplo anterior hemos añadido la 2FA a los perfiles de autor de WordPress y de gestor de tienda de WooCommerce, pero puedes añadir a cualquier otro perfil, nativo de WordPress, o añadido por ti o por otros plugins, como contributor, subscriber, seo-manager, etc.

Añade todos los perfiles a la identificación de dos factores de Security Optimizer

Pero no queda ahí la cosa, porque si te vienes arriba y resulta que quieres aplicar el 2FA de Security Optimizer a TODOS los roles de usuario existentes y por existir en una instalación, entonces tendrías este otro código:

/* 2FA obligatorio para TODOS los perfiles de usuario con Security Optimizer de SG */
add_filter( 'sg_security_2fa_roles', 'ayudawp_2fa_todos_los_roles' );
function ayudawp_2fa_todos_los_roles( $roles ) {
$all_roles = wp_roles();
return array_keys( $all_roles->role_names );
}

Funciona así:

  • wp_roles() devuelve el objeto con todos los perfiles (roles) registrados en la base de datos de WordPress.
  • role_names contiene un array asociativo donde las claves son los slugs de los perfiles (administrator, editor, author, subscriber, shop_manager, etc.)
  • array_keys() extrae solo esos slugs, que es lo que el filtro espera.

Al hacerlo así, cualquier perfil nuevo que se añada en el futuro (ya sea un plugin, tema o manualmente) quedará automáticamente incluido sin tocar el código.

¿Y si quiero aplicarlo a todos los perfiles pero excluir alguno en concreto?

Si en algún momento quisieras excluir algún rol específico, podrías hacerlo así:

/* 2FA obligatorio para CASI TODOS los perfiles de usuario con Security Optimizer de SG */
add_filter( 'sg_security_2fa_roles', 'ayudawp_2fa_todos_los_roles' );
function ayudawp_2fa_todos_los_roles( $roles ) {
$all_roles = wp_roles();
$roles = array_keys( $all_roles->role_names );

// Perfiles a excluir de 2FA - Un slug por línea
$exclude = array( 'subscriber' );
$exclude = array( 'slug_de_otro_rol_a_exluir' );

return array_diff( $roles, $exclude );
}

En el mismo código te he indicado donde tendrías que añadirlos. Por defecto excluye todos, menos los $exclude.

Añade el código usando tu método preferido y no necesitas más.

Compartir en redes
Resumir con IA

¿De cuánta utilidad te ha parecido este contenido?

¡Haz clic en las estrellas para valorarlo!

Promedio de puntuación 5 / 5. Total de votos: 7

¡Todavía no hay votos! Sé el primero en valorar este contenido.

Ya que has encontrado útil este contenido...

¡Sígueme en las redes sociales!

¿Te gustó este artículo? ¡Ni te imaginas lo que te estás perdiendo en YouTube!



Sobre el autor

2 comentarios en “Cómo añadir perfiles de usuario a la identificación de dos factores 2FA del plugin Security Optimizer”

  1. Gracias por ese tip Fernando, soy usuario empedernido de ese plugin, y en ocasiones eché en falta poder activar el 2FA para todos los perfiles.

    Solo una duda, ¿dónde habría que añadir esos fragmentos de código?

    Gracias ppr este, y por tantos otros artículos de interés práctico para WordPress ‍♀️

Los comentarios están cerrados.

Scroll al inicio