El plugin de Latch para Wordpress: ¿en qué cambia la base de datos?

viernes, 1 de agosto de 2014

Una de las preguntas habituales de los desarrolladores o administradores a la hora de implementar Latch en Wordpress, suele ser cómo afecta la instalación del plugin y dónde se almacena el identificador del usuario que ha pareado Latch. Vamos a explicar brevemente qué ocurre en este escenario en concreto, extrapolable a otros de forma sencilla.

Esquema de funcionalidad básica de Latch

Si se observa el esquema general de funcionamiento de Latch, vemos que en el paso dos, cuando la aplicación cliente (Wordpress en este post) consulta a Latch sobre el estado del servicio, debe pasarle un identificador de ese usuario. Con este dato Latch consulta cómo se encuentra el estado de su servicio (bloqueado o no).

Cuando un usuario final se parea con Latch desde la aplicación cliente, Latch almacena en la base de datos el identificador que luego necesita para saber qué usuario final es en concreto. Ese identificador impide que en los servidores de Latch se maneje información alguna sobre el usuario.

Pero para que esto ocurra, los administradores de Wordpress en este caso no tienen que hacer nada, porque cuando instalan el plugin de Wordpress siguiendo los pasos del manual de instalación automáticamente ya están configurando su base de datos para que almacene los valores que Latch necesita.

La base de datos

En general, en Wordpress la tabla "wp_users" almacena los datos referentes a los usuarios. Entre estos campos se observa el identificador (campo ID) que lógicamente identifica al usuario y que se incrementa secuencialmente.

Tabla "w_users" con los usuarios actuales de Wordpress

El plugin de Latch aprovecha este campo para relacionar cada usuario en concreto con el identificador de usuario de Latch. Esto se consigue en la tabla "wp_usermeta".


Tabla "wp_usermeta" con los identificadores de usuarios de Latch y de Wordpress

En la imagen anterior se puede observar que existen tres usuarios en la base de datos y que dos de ellos sí tienen integrada la protección de Latch.

¿Y se utiliza un OTP?

Esto incluye también el uso del OTP por parte de los usuarios finales. El plugin introduce en la tabla "wp_usermeta" un campo "latch_two_factor" que se utiliza para guardar las contraseñas de un solo uso que envía Latch a los usuarios finales.

Tabla "wp_usermeta" con los identificadores de usuarios de Worpress y los OTP enviados

OTP recibido por el usuario final

Wordpress esperando el OTP enviado por Latch


El resto del plugin no tiene más que:

  • Modificar el flujo del programa para comprobar estos campos cuando el usuario se autentica correctamente, 
  • Preguntar a los servidores de Latch
  • Actuar en consecuencia, dejando pasar o no al usuario.


Antonio Díaz
antonio.diaz@11paths.com

1 comentario:

  1. Muy buen plugins. Tengo un proyecto para realizar Hardening a los sistemas WordPress llamado WPHardening https://github.com/elcodigok/wphardening y los invito a probarlo cuando gusten.

    Saludos cordiales

    ResponderEliminar