Gestionando filtros MQTT con MyQttHub para controlar qué puede ser publicado


#1

Introducción a los filtros de MyQttHub

Con los filtros de MyQttHub puedes fácilmente:

  • Controlar qué puede ser publicado (PUBLISH), creando políticas para permitir-luego-denegar o denegar-rest-permitir.
  • Usar el filtrado para activar la función de Stashing para almacenar mensajes que encajen para que sean almacenados de manera permanente.

Vamos a ver cómo se configuran los filtros paso a paso. Siga leyendo.

Creando un filtro MQTT de permitir-luego-denegar con MyQttHub

En este caso, usted quiere:

  • Crear un filtro que permita sólo ciertos topics.
  • Opcionalmente permitir estos topics para cierto listado de usuarios (clientIds).
  • Luego denegar el resto de topics publicados (PUBLISHed) a todos los usuarios (u opcionalmente a algunos usuarios).
  1. Vaya a filtros y pinche en el menú principal:
    image

  2. …luego en Filters:
    image

  3. Ahora pulse a añadir filtro (arriba derecha):
    image

  4. Ahora introduzca una etiqueta, seleccione una prioridad alta (más alta que la regla de denegado; la prioridad va de menor a mayor, 1 tiene más prioridad que 100), seleccione el tipo de regla (limit PUBLISH), deje la regla activada y configure los filtros de topic que serán permitidos:

  5. Opcionalmente si quere limitar esta regla a un conjunto de usuarios/dispositivos (clientIds), introdúzcalos pinchando en “ClientIds”:
    image

  6. Cuando termine, pulse sobre “Add filter rule”:
    image

Si todo fue correctamente, debería ver su regla de “allow” (permitir). Ahora, repita el mismo proceso pero añadiendo una regla con menor prioridad que se encargará de denegar el resto del tráfico. Así es como se haría:

  1. Pulse a añadir de nuevo, configurando otra etiqueta, mismo tipo de regla, prioridad menor (un número más alto), cambiando “Permission/action” a Reject/deny, por último, añadiendo la regla:

  2. Opcionalmente puede configurar esta regla de rechazo (deny) para que ésta sea aplicada sólo a ciertos usuarios.

Después de esta configuración, los mensajes publicados (PUBLISH) que encajen con los topics permitidos tendrán como acción “Allow/Ok”, esto es, permitir/aceptar el mensaje lo antes posible y parar de comprobar otras reglas.

El resto de mensajes que no encajen con las reglas previas encajarán con la regla Deny/Reject debido a que tienen un “#” en nuestro ejemplo. En dicho acso, esos mensajes serán descartados.

Creando un filtro MQTT para denegar y el resto aceptar con MyQttHub

Por defecto, el motor de filtros de MyQttHub aceptará cualquier mensaje que no encaje con ninguna regla. De manera que que, para crear una regla de rechazo/descarte para limitar ciertos topics a ciertos usuarios, sólo tiene que crear un filtro de rechazo/descarte:

Luego, el resto de mensajes (PUBLISH) que no encajen con este filtro sepán permitidos.