Al conectar un dispositivo a IoT Platform mediante un cliente MQTT personalizado, debe proporcionar los parámetros de autenticación por firma MQTT: username, passwd y mqttClientId.
Descripción general
Elija uno de los siguientes métodos para obtener los parámetros de firma MQTT.
|
Método |
Descripción |
|
El algoritmo de firma compatible es hmacsha256. El ID de cliente del dispositivo tiene como valor predeterminado |
|
|
El algoritmo de firma compatible es hmacsha256. El ID de cliente del dispositivo tiene como valor predeterminado |
Obtención desde la consola de IoT Platform
Inicie sesión en la consola de IoT Platform.
En la página Overview, localice la instancia que desea gestionar y haga clic en el ID o nombre de la instancia.
En el panel de navegación izquierdo, seleccione para ir a la página Device.
Localice su dispositivo y haga clic en View para ir a la página Device Details.
-
En la pestaña Device Information, haga clic en View junto a MQTT Connection Parameters para consultar los parámetros de firma MQTT.
ImportanteEl parámetro clientId corresponde a
mqttClientId, no al ID de cliente del dispositivo. MQTT-TLS communication.El cuadro de diálogo MQTT Connection Parameters muestra los valores de clientId, username, passwd, mqttHostUrl y port. Haga clic en Copy All para copiarlos.
Cálculo mediante un script de Node.js
-
Descargue y descomprima el paquete signTool.zip; luego modifique y guarde los siguientes parámetros en el archivo mqttSignTool.js.
Parámetro
Ejemplo
Descripción
productKey
a1Ee***
El certificado del dispositivo guardado al agregar el dispositivo. Device certificate information.
Consulte esta información en la página Device Details de la consola.
deviceName
8Co5***
deviceSecret
bcabcf***
timestamp
2524608000000
La hora actual en milisegundos.
briefId
12345
Opcional. El ID de cliente del dispositivo.
El valor predeterminado es
${ProductKey} + '.' + ${DeviceName}. Ejemplo:var briefId = '12345'.ImportanteValor personalizado de hasta 64 caracteres. Utilice la dirección MAC o el número de serie del dispositivo para facilitar su identificación.
-
Descargue e instale Node.js. Este ejemplo utiliza Ubuntu 16.04 (64 bits) con
node-v16.5.0-linux-x64.tar.gz.Inicie sesión en su máquina virtual Linux.
-
Descargue y descomprima el paquete.
wget https://nodejs.org/dist/v16.5.0/node-v16.5.0-linux-x64.tar.gz tar xf node-v16.5.0-linux-x64.tar.gz cd node-v16.5.0-linux-x64 ./bin/node -vUna instalación correcta devuelve el número de versión.
v16.5.0 -
Agregue los comandos node y npm de node-v16.5.0-linux-x64/bin a la variable PATH global.
ln -s /root/node-v16.5.0-linux-x64/bin/npm /usr/local/bin/ ln -s /root/node-v16.5.0-linux-x64/bin/node /usr/local/bin/
-
Salga del directorio node-v16.5.0-linux-x64 y cree una carpeta de proyecto llamada signTool.
cd.. mkdir signTool cd signTool/ Cargue el archivo mqttSignTool.js modificado en el paso 1 al directorio signTool.
-
En el directorio signTool, descargue la biblioteca de firmas.
npm install crypto-js lsContenido esperado del directorio:
mqttSignTool.js node_modules package.json package-lock.json -
Ejecute el script mqttSignTool.js.
node mqttSignTool.jsLa salida contiene los parámetros de autenticación por firma MQTT.
ImportanteEl parámetro clientId corresponde a
mqttClientId, no al ID de cliente del dispositivo. MQTT-TLS communication.username: xxx clientId: xxx|securemode=2,signmethod=hmacsha256,timestamp=2524608000000| passwd: xxx