Inicio rápido: Publicación y suscripción a mensajes MQTT en el espacio de nombres de Event Grid con Azure Portal
En este artículo, se usa Azure Portal para realizar las siguientes tareas:
- Creación de un espacio de nombres de Event Grid y habilitación de MQTT broker
- Crear subrecursos como clientes, grupos de clientes y espacios de temas
- Conceder a los clientes acceso para publicar y suscribirse a espacios de temas
- Publicar y recibir mensajes entre clientes
Requisitos previos
- Si no tiene una suscripción de Azure, cree una cuenta gratuita de Azure.
- Si no está familiarizado con Azure Event Grid, lea la introducción a Event Grid antes de comenzar este tutorial.
- Asegúrese de que el puerto 8883 está abierto en el firewall. En el ejemplo de este tutorial se usa el protocolo MQTT, que se comunica mediante el puerto 8883. Este puerto puede estar bloqueado en algunos entornos de red corporativos y educativos.
- Necesita un certificado de cliente X.509 para generar la huella digital y autenticar la conexión de cliente.
Generación de un certificado de cliente de ejemplo y una huella digital
Si aún no tiene un certificado, puede crear un certificado de ejemplo mediante la CLI de Step. Considere la posibilidad de instalar manualmente para Windows.
Después de una instalación correcta de Step, debe abrir un símbolo del sistema en la carpeta de perfil de usuario (Win+R escriba %USERPROFILE%).
Para crear certificados raíz e intermedios, ejecute el siguiente comando. Recuerde la contraseña, que deberá utilizar en el siguiente paso.
step ca init --deployment-type standalone --name MqttAppSamplesCA --dns localhost --address 127.0.0.1:443 --provisioner MqttAppSamplesCAProvisioner
Use los archivos de CA generados para crear un certificado para el primer cliente. Asegúrese de usar la ruta de acceso correcta para los archivos de certificado y secretos en el comando.
step certificate create client1-authn-ID client1-authn-ID.pem client1-authn-ID.key --ca .step/certs/intermediate_ca.crt --ca-key .step/secrets/intermediate_ca_key --no-password --insecure --not-after 2400h
Para ver la huella digital, ejecute el comando Step.
step certificate fingerprint client1-authn-ID.pem
Ahora, cree un certificado para el segundo cliente.
step certificate create client2-authn-ID client2-authn-ID.pem client2-authn-ID.key --ca .step/certs/intermediate_ca.crt --ca-key .step/secrets/intermediate_ca_key --no-password --insecure --not-after 2400h
Para ver la huella digital que se va a usar con el segundo cliente, ejecute el comando Step.
step certificate fingerprint client2-authn-ID.pem
Creación de un espacio de nombres
Inicie sesión en el portal de Azure.
En la barra de búsqueda, escriba Espacios de nombres de Event Grid y, a continuación, seleccione Espacios de nombres de Event Grid en la lista desplegable.
En la página Espacios de nombres de Event Grid, seleccione + Crear en la barra de herramientas.
En la página Crear espacio de nombres, siga estos pasos:
Seleccione su suscripción a Azure.
Seleccione un grupo de recursos existente o Crear nuevo y escriba un nombre para el grupo de recursos.
Proporcione un nombre único para el espacio de nombres. El nombre del espacio de nombres debe ser único en cada región porque representa una entrada DNS. No use el nombre que se muestra en la imagen. En su lugar, cree su propio nombre: debe tener entre 3 y 50 caracteres y contener solo los valores a-z, A-Z, 0-9 y
-
.Seleccione una ubicación para el espacio de nombres de Event Grid. Actualmente, el espacio de nombres de Event Grid solo está disponible en determinadas regiones.
En la parte inferior de la página, seleccione Revisar y crear.
En la pestaña Revisar y crear de la página Crear espacio de nombres, seleccione Crear.
Nota:
Para simplificar el inicio rápido, solo usará la página Aspectos básicos para crear un espacio de nombres. Para obtener información detallada sobre la configuración de la red, la seguridad y otros parámetros en otras páginas del asistente, consulte Creación de un espacio de nombres.
Cuando la implementación se haya realizado correctamente, seleccione Ir al recurso para acceder a la página Información general del espacio de nombres de Event Grid correspondiente a su espacio de nombres.
En la página Información general, verá que MQTT broker está en estado Deshabilitado. Para habilitar MQTT broker, seleccione el vínculo Deshabilitado y le redirigirá a la página Configuración.
En la página Configuración, seleccione la opción Habilitar MQTT broker y, a continuación, seleccione Aplicar para aplicar la configuración.
Creación de clientes
En el menú de la izquierda, seleccione Clientes en la sección MQTT broker.
En la página Clientes, seleccione + Cliente en la barra de herramientas.
En la página Crear cliente, escriba un nombre para el cliente. Los nombres de cliente deben ser únicos en un espacio de nombres.
El nombre de autenticación de cliente tiene como valor predeterminado el nombre del cliente. Para este tutorial, cámbielo a
client1-authn-ID
. Debe incluir este nombre comoUsername
en el paquete CONNECT.En este tutorial, usará la autenticación basada en huella digital. Incluya la huella digital del certificado de cliente en la huella digital principal.
Seleccione Crear en la barra de herramientas para crear otro cliente.
Repita los pasos anteriores para crear un segundo cliente denominado
client2
. Cambie el nombre de autenticación aclient2-authn-ID
e incluya la segunda huella digital del certificado de cliente en la huella digital principal.Nota:
- Para simplificar el inicio rápido, usará la opción de Coincidencia de huella digital para la autenticación. Para obtener información detallada sobre el uso de la cadena de certificados de CA X.509 para la autenticación de cliente, consulte Autenticación de cliente mediante la cadena de certificados.
- Además, usamos el grupo de clientes
$all
predeterminado, que incluye todos los clientes del espacio de nombres para este ejercicio. Para obtener más información sobre cómo crear grupos de cliente personalizados con atributos de cliente, consulte Grupos de clientes.
Creación de espacios de temas
En el menú de la izquierda, seleccione Espacios de temas en la sección MQTT broker.
En la página Espacios de tema, seleccione + Espacio de tema en la barra de herramientas.
Proporcione un nombre para el espacio del tema, en la página Crear espacio de temas.
Seleccione + Agregar plantillade tema.
Escriba
contosotopics/topic1
para la plantilla de tema y, a continuación, seleccione Crear para crear el espacio del tema.
Configuración del control de acceso mediante enlaces de permisos
En el menú de la izquierda, seleccione Enlaces de permisos en la sección MQTT broker.
En la página Enlaces de permisos, seleccione + Enlace de permisos en la barra de herramientas.
Configure el enlace de permisos de la siguiente manera:
Proporcione un nombre para el enlace de permisos. Por ejemplo,
contosopublisherbinding
.En Nombre del grupo de clientes, seleccione $all.
En Nombre del espacio del tema, seleccione el espacio del tema que creó en el paso anterior.
Conceda permiso de Publicador al grupo de clientes en el espacio de tema.
Seleccione Crear para crear el enlace de permisos.
Cree un enlace de permisos adicional (
contososubscriberbinding
) seleccionando + Enlace de permisos en la barra de herramientas.Proporcione un nombre y dé al grupo de clientes $all Subscriber acceso al ContosoTopicSpace como se muestra.
Seleccione Crear para crear el enlace de permisos.
Conexión de los clientes al espacio de nombres EG mediante la aplicación MQTTX
Para publicar o suscribirse a mensajes MQTT, puede usar cualquiera de sus herramientas favoritas. Con fines de demostración, la publicación y suscripción se muestra con la aplicación MQTTX, que se puede descargar de https://mqttx.app/.
Configure cliente1 con:
Nombre como
client1
(este valor puede ser cualquier cosa)Un id. de cliente como
client1-session1
(el identificador de cliente del paquete CONNECT se usa para identificar el identificador de sesión de la conexión de cliente)Nombre de usuario como
client1-authn-ID
. Este valor debe coincidir con el valor de Nombre de autenticación de cliente que especificó al crear el cliente en Azure Portal.Importante
El nombre de usuario debe coincidir con el nombre de autenticación de cliente en los metadatos del cliente.
Actualice el nombre de host al nombre de host MQTT desde la página Información general del espacio de nombres.
Actualización del puerto a 8883.
Cambie SSL/TLS a ACTIVADO.
Cambie SSL Secure a ACTIVADO para garantizar la validación del certificado de servicio.
Seleccione Certificado como Autofirmado.
Proporcione la ruta de acceso para el archivo de certificado de cliente.
Proporcione la ruta de acceso para el archivo de clave de cliente.
El resto de la configuración se puede dejar con los valores predeterminados predefinidos.
Seleccione Conectar para conectar el cliente a MQTT broker.
Repita los pasos anteriores para conectar el segundo cliente cliente2, con la información de autenticación correspondiente como se muestra.
Publicación y suscripción mediante la aplicación MQTTX
Después de conectar los clientes, para cliente2, seleccione el botón + Nueva suscripción.
Agregue
contosotopics/topic1
como tema y seleccione Confirmar. Puede dejar los demás campos con los valores predeterminados existentes.Seleccione cliente1 en el raíl izquierdo.
Para client1, en la parte superior del cuadro de redacción de mensajes, escriba
contosotopics/topic1
como tema en el que se va a publicar.Redacte un mensaje. Puede usar cualquier formato o JSON como se muestra.
Seleccione el botón Enviar.
El mensaje debe verse como Publicado en el cliente 1.
Cambie a client2. Confirme que client2 recibió el mensaje.