Compartir a través de


Clientes MQTT

En este artículo, obtendrá información sobre cómo configurar clientes y grupos de clientes MQTT.

Clientes

Los clientes pueden ser dispositivos o aplicaciones, como dispositivos o vehículos que envían o reciben mensajes MQTT.

Por ejemplo, considere una empresa de administración de flotas con cientos de camiones y otros vehículos de entrega de envíos. Puede mejorar sus funcionalidades de enrutamiento, seguimiento, seguridad del conductor y mantenimiento predecible mediante el envío y recepción de mensajes MQTT hacia o desde un servicio en la nube.

En este escenario, los vehículos se pueden configurar como clientes que publican o se suscriben a diversos temas, como información meteorológica, condiciones de carretera, ubicación geográfica, rendimiento del motor y otros aspectos de desgaste del vehículo. Además, al configurar el vehículo como cliente, un conjunto de atributos como el tipo de vehículo, el año, la marca y el modelo, la capacidad máxima de carga, etc. también se pueden incluir en los metadatos del cliente.

Nota:

  • Un nombre puede tener entre 1 y 128 caracteres.
  • El nombre de cliente puede incluir caracteres alfanuméricos, guiones (-), dos puntos (:), puntos (.) y guion bajo (_), sin espacios. Distingue mayúsculas de minúsculas y debe ser único en cada espacio de nombres.

Términos clave de metadatos de cliente

Nombre de autenticación de cliente: puede proporcionar un identificador único para el cliente sin restricciones de nomenclatura de Azure Resource Manager. Es un campo obligatorio y, si no se proporciona explícitamente, se establece de forma predeterminada en el nombre de cliente.

Ningún cliente puede tener el mismo nombre de autenticación en un espacio de nombres. Al autenticar un cliente, tratamos el nombre de autenticación del cliente sin distinción de mayúsculas y minúsculas.

Conservamos las mayúsculas y minúsculas originales del nombre de autenticación del cliente que usted configura en el cliente. Usamos el nombre de autenticación de cliente original (distingue mayúsculas de minúsculas) que se proporcionó cuando se creó el cliente, en enriquecimientos de enrutamiento, coincidencia de espacio de temas, etc.

Nota:

  • El nombre de autenticación de cliente puede tener entre 1 y 128 caracteres, cadenas UTF-8, sin restricciones.
  • El nombre de autenticación de cliente distingue mayúsculas de minúsculas y debe ser único en cada espacio de nombres (las mayúsculas y minúsculas se omiten al determinar la unicidad).

Esquema de validación de autenticación de certificados de cliente: para usar el certificado de CA para la autenticación, puede elegir una de las siguientes opciones para especificar la ubicación de la identidad de cliente en el certificado de cliente. Cuando el cliente intenta conectarse al servicio, el servicio busca la identificación del cliente desde este campo de certificado y la empareja con el nombre de autenticación de cliente para autenticar al cliente.

Se admiten cinco campos de certificado:

  • Subject Matches Authentication Name
  • Dns Matches Authentication Name Dns
  • Uri Matches Authentication Name
  • IP Matches Authentication Name
  • Email Matches Authentication Name

Use la opción "Coincidencia de huella digital" al usar el certificado autofirmado para autenticar al cliente.

Nota:

  • clientCertificateAuthentication siempre es necesario con un valor válido de validationScheme.
  • authenticationName no es necesario, pero después de la primera solicitud de creación, el valor authenticatioName tiene como valor predeterminado el nombre de ARM y ya no se puede actualizar.
  • authenticationName no se puede actualizar.
  • Si validationScheme es algo distinto de ThumbprintMatch, no se puede proporcionar la lista allowedThumbprints.
  • La lista allowedThumbprints solo se puede proporcionar y debe proporcionarse si validationScheme es ThumbprintMatch con al menos una huella digital.
  • allowedThumbprints solo puede contener un máximo de 2 huellas digitales.
  • Los valores permitidos de validationScheme son SubjectMatchesAuthenticationName, DnsMatchesAuthenticationName, UriMatchesAuthenticationName, IpMatchesAuthenticationName, EmailMatchesAuthenticationName, ThumbprintMatch
  • Uso de la huella digital con allow reuse del mismo certificado en varios clientes. Para otros tipos de validación, el nombre de autenticación debe estar en el campo elegido del certificado de cliente.

Atributos de cliente

Los atributos de cliente son un conjunto de pares clave-valor definidos por el usuario o etiquetas que proporcionan información sobre el cliente.

Estos atributos de cliente se pueden usar para crear los grupos de clientes. Por ejemplo, puede agrupar todos los vehículos de tipo semirremolque en un grupo y todos los vehículos de tipo camioneta en otro.

Estos atributos se usan en las consultas del grupo de clientes para filtrar un conjunto de clientes. Los atributos podrían describir las características físicas o funcionales del cliente. Un atributo típico podría ser el "tipo" de cliente.

Este es un ejemplo:

  • Tipo: los valores pueden ser "sensor" o "termostato" o "vehículo".

Este es un esquema de ejemplo para el cliente con definición de atributo:

{  
    "id": "device123",  
    "attributes": {  
        "type": "home-sensors",
        "sensors": ["motion", "noise", "light"]
     }
}

Al configurar los atributos de cliente, tenga en cuenta los temas en los que los clientes publican (están suscritos). Pensar al revés, de los temas a los clientes, ayuda a identificar más fácilmente los puntos en común entre los roles de los clientes y a definir los atributos de los clientes para simplificar su agrupación.

Nota:

  • Las claves de atributo de cliente deben ser únicas en el cliente. Las claves no se pueden repetir.
  • Los valores de atributo de cliente pueden ser de string, integer o array of strings tipos.
  • El tamaño total de los atributos de cliente para un cliente siempre debe ser inferior a 4 KB.
  • El nombre del atributo de cliente (clave) solo puede contener caracteres alfanuméricos y guiones bajos (_).

Contratos de ejemplo

Ejemplo de autenticación de cliente basada en la cadena de certificados

{
    "properties": {
        "authenticationName": "127.0.0.1",
        "state": "Enabled",
        "clientCertificateAuthentication": {
            "validationScheme": "IpMatchesAuthenticationName"
        },
        "attributes": {
            "room": "345",
            "floor": 3,
            "bldg": "17"
        },
        "description": "Description of the client"
    }
}

Ejemplo de autenticación de cliente basada en la huella digital de certificado autofirmado

{
    "properties": {
        "authenticationName": "abcd@domain.com-1",
        "state": "Enabled",
        "clientCertificateAuthentication": {
            "validationScheme": "ThumbprintMatch",
            "allowedThumbprints": ["primary", "secondary"]
        },
        "attributes": {
            "room": "345",
            "floor": "3",
            "bldg": 17
        },
        "description": "Description of the client"
    }
}

Configuración de Azure Portal

Use los siguientes pasos para crear un cliente:

  1. En Azure Portal, vaya a su espacio de nombres

  2. En Clientes, seleccione + Cliente.

    Screenshot of adding a client.

  3. Elija el esquema de validación de autenticación de certificados de cliente. Para obtener más información sobre la configuración de autenticación de cliente, consulte el artículo Autenticación de cliente.

  • Agregue atributos de cliente.

    Screenshot of client configuration.

  1. Seleccione Crear

Configuración de la CLI de Azure

Use los siguientes comandos para crear, mostrar o eliminar un cliente

Crear el cliente

az eventgrid namespace client create -g myRG --namespace-name myNS -n myClient

Get client

az eventgrid namespace client show -g myRG --namespace-name myNS -n myClient

Delete client

az eventgrid namespace client delete -g myRG --namespace-name myNS -n myClient

Pasos siguientes