Conexión a Azure IoT Central

En este artículo se describe cómo se conectan los dispositivos a una aplicación de Azure IoT Central. Para que un dispositivo pueda intercambiar datos con IoT Central, debe hacer lo siguiente:

  • Autenticación. La autenticación con la aplicación de IoT Central usa un token de firma de acceso compartido (SAS) o un certificado X.509. Los certificados X.509 se recomiendan en entornos de producción.
  • Registro. Los dispositivos deben estar registrados con la aplicación de IoT Central. Puede ver los dispositivos registrados en la página Dispositivos de la aplicación.
  • Asociación a una plantilla de dispositivo. En una aplicación de IoT Central, las plantillas de dispositivo definen la interfaz de usuario que usan los operadores para ver y administrar los dispositivos conectados.

IoT Central admite los siguientes dos escenarios de registro de dispositivos:

  • Registro automático. El dispositivo se registra automáticamente cuando se conecta por primera vez. Este escenario permite a los OEM fabricar dispositivos de forma masiva que puedan conectarse sin registrarse primero. Un OEM genera las credenciales de dispositivo adecuadas y configura los dispositivos en la fábrica. Opcionalmente, puede requerir que un operador apruebe el dispositivo antes de empezar a enviar datos. Este escenario requiere que configure una inscripción de grupo X.509 o SAS en la aplicación.
  • Registro manual. Los operadores registran dispositivos individuales en la página Dispositivos, o bien importan un archivo .csv a los dispositivos registrados de forma masiva. En este escenario, puede usar la inscripción de grupo X.509 o SAS, o bien la inscripción individual X.509 o SAS.

Los dispositivos que se conectan a IoT Central deben seguir las convenciones de IoT Plug and Play. Una de estas convenciones es que un dispositivo debe enviar el identificador de modelo del modelo de dispositivo que implementa cuando se conecta. El identificador de modelo permite a la aplicación de IoT Central asociar el dispositivo a la plantilla de dispositivo correcta.

IoT Central usa el servicio Azure IoT Hub Device Provisioning (DPS) para administrar el proceso de conexión. Un dispositivo se conecta primero a un punto de conexión de DPS para recuperar la información necesaria para conectarse a la aplicación. De manera interna, la aplicación de IoT Central usa un centro de IoT para administrar la conectividad de los dispositivos. El uso de DPS permite:

  • Que IoT Central admite la incorporación y la conexión de dispositivos a escala.
  • Que usted pueda generar credenciales de dispositivo y configurar los dispositivos sin conexión sin tener que registrarlos primero en la interfaz de usuario de IoT Central.
  • Que usted pueda usar identificadores de dispositivo propios para registrar estos en IoT Central. Esto simplifica la integración con sistemas del área de operaciones existentes.
  • Una manera sencilla y coherente de conectar dispositivos a IoT Central.

En este artículo se describen los siguientes pasos de conexión de dispositivos:

Inscripción de grupo X.509

En un entorno de producción, se recomienda el uso de certificados X.509 como mecanismo de autenticación de dispositivos para IoT Central. Para más información consulte Autenticación de dispositivos mediante certificados de entidades de certificación X.509.

Para conectar un dispositivo con un certificado X.509 a la aplicación, haga lo siguiente:

  1. Cree un grupo de inscripción que use el tipo de atestación Certificados (X.509) .
  2. Agregue y verifique un certificado X.509 intermedio o raíz en el grupo de inscripción.
  3. Genere un certificado de hoja a partir del certificado raíz o intermedio en el grupo de inscripción. Envíe el certificado de hoja desde el dispositivo cuando se conecte a la aplicación.

Para más información, vea Procedimiento para conectar dispositivos con certificados X.509.

Solo para fines de prueba

Solo para pruebas, puede usar las siguientes utilidades para generar certificados raíz, intermedio y de dispositivo:

Inscripción de grupo SAS

Para conectar un dispositivo con una clave SAS de dispositivo a la aplicación, haga lo siguiente:

  1. Cree un grupo de inscripción que use el tipo de atestación Firma de acceso compartido (SAS) .

  2. Copie la clave principal o secundaria del grupo desde el grupo de inscripción.

  3. Use la CLI de Azure para generar una clave de dispositivo a partir de la clave de grupo:

    az iot central device compute-device-key --primary-key <enrollment group primary key> --device-id <device ID>
    
  4. Use la clave de dispositivo generada cuando el dispositivo se conecte a la aplicación de IoT Central.

Nota

Para usar las claves SAS existentes en los grupos de inscripción, deshabilite el botón de alternancia Generar claves automáticamente y escriba las claves SAS.

Inscripción individual

Para los clientes que conectan dispositivos que tienen sus propias credenciales de autenticación, use inscripciones individuales. Una inscripción individual es una entrada para un único dispositivo que tiene permiso para conectarse. Las inscripciones individuales pueden usar certificados X.509 de hoja o tokens de SAS (de un módulo de plataforma segura físico o virtual) como mecanismos de atestación. Un identificador de dispositivo puede contener letras, números y el carácter -. Para más información, consulte Inscripción individual de DPS.

Nota

Cuando se crea una inscripción individual para un dispositivo, tiene prioridad sobre las opciones de inscripción de grupo predeterminadas de la aplicación de IoT Central.

Creación de inscripciones individuales

IoT Central admite los siguientes mecanismos de atestación para las inscripciones individuales:

  • Atestación de clave simétrica: la atestación de clave simétrica es un enfoque sencillo para autenticar un dispositivo con una instancia de DPS. Para crear una inscripción individual que use claves simétricas, abra la página Conexión del dispositivo del dispositivo, seleccione Inscripción individual como método de conexión y Firma de acceso compartido (SAS) como mecanismo. Escriba las claves principal y secundaria codificadas en Base64 y guarde los cambios. Use el valor de ID scope (Ámbito de id.), Device ID (Id. de dispositivo) y la clave principal o secundaria para conectarse al dispositivo.

    Sugerencia

    Con fines de prueba, puede usar OpenSSL para generar claves codificadas en Base64: openssl rand -base64 64

  • Certificados X.509: Para crear una inscripción individual con certificados X.509, abra la página Device Connection (Conexión de dispositivos), seleccione Individual enrollment (Inscripción individual) como método de conexión y Certificates (X.509) (Certificados [X.509]) como mecanismo. Los certificados de dispositivo usados con una entrada de inscripción individual tienen el requisito de que el emisor y el CN del firmante están establecidos en el identificador de dispositivo.

    Sugerencia

    Con fines de prueba, puede usar las herramientas para el SDK de dispositivo de Azure IoT Device Provisioning para Node.js para generar un certificado autofirmado: node create_test_cert.js device "mytestdevice"

  • Atestación del Módulo de plataforma segura (TPM): Un TPM es un tipo de módulo de seguridad de hardware. El uso de un TPM es una de las formas más seguras de conectar un dispositivo. En este artículo se supone que usa un TPM discreto, de firmware o integrado. Los TPM emulados por software son adecuados para prototipos o pruebas, pero no brindan el mismo nivel de seguridad que los TPM discretos, de firmware o integrados. No use TPM de software en producción. Para crear una inscripción individual que use un TPM, abra la página Device Connection (Conexión de dispositivos), seleccione Individual enrollment (Inscripción individual) como método de conexión y TPM como mecanismo. Escriba la clave de aprobación de TPM y guarde la información de conexión del dispositivo.

Registro de dispositivos

Para que un dispositivo pueda conectarse a una aplicación de IoT Central, debe estar registrado en la aplicación:

  • Los dispositivos pueden registrarse automáticamente al conectarse por primera vez. Para usar esta opción, debe usar la inscripción de grupo X.509 o la inscripción de grupo SAS.
  • Un operador puede importar un archivo .csv para registrar de forma masiva una lista de dispositivos en la aplicación.
  • Un operador puede registrar manualmente un dispositivo individual en la página Dispositivos de la aplicación.

IoT Central permite a los OEM fabricar dispositivos de forma masiva que pueden registrarse automáticamente. Un OEM genera las credenciales de dispositivo adecuadas y configura los dispositivos en la fábrica. Cuando un cliente enciende un dispositivo por primera vez, se conecta a DPS, que, a continuación, conecta automáticamente el dispositivo a la aplicación de IoT Central correcta. Opcionalmente, puede requerir que un operador apruebe el dispositivo antes de que este empiece a enviar datos a la aplicación.

Sugerencia

En la página Administración > Conexión del dispositivo, la opción Aprobación automática controla si un operador debe aprobar el dispositivo manualmente antes de que pueda empezar a enviar datos.

Registro automático de dispositivos que usan certificados X.509

  1. Genere certificados de hoja para los dispositivos con el certificado raíz o intermedio que agregó al grupo de inscripción X.509. Use los identificadores de dispositivo como CNAME en los certificados de hoja. Un identificador de dispositivo puede contener letras, números y el carácter -.

  2. Como OEM, cargue cada dispositivo con un identificador de dispositivo, un certificado de hoja X.509 generado y el valor Ámbito de id. de la aplicación. El código del dispositivo también debe enviar el identificador del modelo de dispositivo que implementa.

  3. Al encender un dispositivo, primero se conecta a DPS para recuperar la información de conexión de IoT Central.

  4. El dispositivo usa la información de DPS para conectarse y registrarse en la aplicación de IoT Central.

La aplicación de IoT Central usa el identificador de modelo enviado por el dispositivo para asociar el dispositivo registrado a una plantilla de dispositivo.

Registro automático de dispositivos que usan tokens de SAS

  1. Copie la clave principal del grupo desde el grupo de inscripción SAS-IoT-Devices:

    Clave principal del grupo desde el grupo de inscripción SAS-IoT-Devices

  2. Use el comando az iot central device compute-device-key para generar las claves SAS del dispositivo. Use la clave principal del grupo del paso anterior. El identificador de dispositivo puede contener letras, números y el carácter -:

    az iot central device compute-device-key --primary-key <enrollment group primary key> --device-id <device ID>
    
  3. Como OEM, cargue cada dispositivo con el identificador del dispositivo, la clave SAS de dispositivo generada y el valor de Ámbito de id. de la aplicación. El código del dispositivo también debe enviar el identificador del modelo de dispositivo que implementa.

  4. Al encender un dispositivo, primero se conecta a DPS para recuperar la información de registro de IoT Central.

  5. El dispositivo usa la información de DPS para conectarse y registrarse en la aplicación de IoT Central.

La aplicación de IoT Central usa el identificador de modelo enviado por el dispositivo para asociar el dispositivo registrado a una plantilla de dispositivo.

Registro anticipado de dispositivos de forma masiva

Para registrar un gran número de dispositivos con la aplicación de IoT Central, use un archivo CSV para importar identificadores y nombres de dispositivo.

Si los dispositivos usan tokens de SAS para realizar la autenticación, exporte un archivo .csv desde la aplicación de IoT Central. El archivo CSV exportado incluye los identificadores de dispositivo y las claves SAS.

Si los dispositivos usan certificados X.509 para realizar la autenticación, genere certificados X.509 de hoja para los dispositivos con el certificado raíz o intermedio que cargó en el grupo de inscripción X.509. Use el identificador de dispositivo que importó como el valor CNAME en los certificados de hoja.

Los dispositivos deben usar el valor de Ámbito de id. de la aplicación y enviar un identificador de modelo cuando se conecten.

Sugerencia

Puede encontrar el valor de Ámbito de id. en Administración > Conexión del dispositivo.

Registro anticipado de un único dispositivo

Este enfoque es útil cuando está experimentando con IoT Central o probado dispositivos. Seleccione + Nuevo en la página Dispositivos para registrar un dispositivo individual. Puede usar las claves SAS de conexión de dispositivos para conectar el dispositivo a la aplicación de IoT Central. Copie la clave SAS del dispositivo de la información de conexión de un dispositivo registrado:

Claves SAS de un dispositivo individual

Asociación de un dispositivo a una plantilla de dispositivo

IoT Central asocia automáticamente un dispositivo a una plantilla de dispositivo cuando el dispositivo se conecta. Un dispositivo envía un identificador de modelo cuando se conecta. IoT Central usa el identificador de modelo para identificar la plantilla de dispositivo para ese modelo de dispositivo específico. El proceso de detección funciona de la siguiente manera:

  1. Si la plantilla de dispositivo ya está publicada en la aplicación IoT Central, el dispositivo se le asocia.
  2. Si la plantilla de dispositivo todavía no está publicada en la aplicación IoT Central, esta busca el modelo del dispositivo en el repositorio de modelos público. Si IoT Central encuentra el modelo, lo utiliza para generar una plantilla de dispositivo básica.
  3. Si IoT Central no encuentra el modelo en el repositorio de modelos público, el dispositivo se marca como Sin asociar. Un operador puede crear una plantilla de dispositivo para el dispositivo y, a continuación, migrar el dispositivo no asociado a la nueva plantilla de dispositivo, o generar automáticamente una plantilla de dispositivo en función de los datos que envía el dispositivo.

En la captura de pantalla siguiente se muestra cómo ver el identificador de modelo de una plantilla de dispositivo en IoT Central. En una plantilla de dispositivo, seleccione un componente y luego Editar identidad:

Captura de pantalla que muestra el identificador de modelo de la plantilla de dispositivo thermostat.

Puede ver el modelo de thermostat en el repositorio de modelos públicos. La definición del identificador de modelo tiene este aspecto:

"@id": "dtmi:com:example:Thermostat;1"

Use la siguiente carga de DPS para asociar el dispositivo a una plantilla de dispositivo:

{
  "modelId":"dtmi:com:example:TemperatureController;2"
}

Para más información sobre la carga de DPS, consulte el código de ejemplo que se usa en Tutorial: Creación y conexión de un aplicación cliente a la aplicación de Azure IoT Central.

Valores de estado del dispositivo

Cuando un dispositivo real se conecta a la aplicación de IoT Central, su estado de dispositivo cambia como sigue:

  1. Primero, el estado del dispositivo es Registrado. Este estado significa que el dispositivo se ha creado en IoT Central y tiene un identificador. El dispositivo está registrado cuando:

    • Se agrega un nuevo dispositivo real en la página Dispositivos.
    • Se agrega un conjunto de dispositivos mediante Importar en la página Dispositivos.
  2. El estado del dispositivo cambia a Aprovisionado cuando el dispositivo conectado a la aplicación de IoT Central con credenciales válidas completa el paso de aprovisionamiento. En este paso, el dispositivo usa DPS para recuperar automáticamente una cadena de conexión de IoT Hub que usa la aplicación de IoT Central. El dispositivo puede conectarse ahora a IoT Hub y empezar a enviar datos.

  3. Los dispositivos los puede bloquear un operador. Cuando están bloqueados, no pueden enviar datos a la aplicación de IoT Central. Los dispositivos bloqueados tienen un estado de Bloqueado. Un operador debe restablecer el dispositivo para que pueda volver a enviar datos. Cuando un operador desbloquea un dispositivo, el estado vuelve a su valor anterior, Registrado o Aprovisionado.

  4. Si el estado del dispositivo es Waiting for Approval (Esperando aprobación), significa que la opción Auto approve (Aprobación automática) está deshabilitada. Un operador debe aprobar explícitamente un dispositivo antes de que empiece a enviar datos. Los dispositivos no registrados manualmente en la página Dispositivos, pero conectados con credenciales válidas, tendrán el estado del dispositivo En espera de aprobación. Los operadores pueden aprobar estos dispositivos desde la página Dispositivos mediante el botón Aprobar.

  5. Si el estado del dispositivo es Unassociated (No asociado), significa que el dispositivo que se conecta a IoT Central no tiene una plantilla de dispositivo asociada. Esta situación suele darse en los escenarios siguientes:

    • Se agrega un conjunto de dispositivos mediante la opción Import (Importar) de la página Devices (Dispositivos) sin especificar la plantilla de dispositivo.
    • Se registró un dispositivo manualmente en la página Devices (Dispositivos) sin especificar la plantilla de dispositivo. Después, el dispositivo se conecta con credenciales válidas.

    Un operador puede asociar un dispositivo a una plantilla de dispositivo desde la página Dispositivos mediante el botón Migrar.

Estado de conexión del dispositivo

Cuando un dispositivo o dispositivo perimetral se conecta mediante el protocolo MQTT, se generan eventos conectados y desconectados para el dispositivo. Estos eventos no los envía el dispositivo; IoT Central los genera internamente.

En el diagrama siguiente se muestra cómo, cuando se conecta un dispositivo, la conexión se registra al final de una ventana de tiempo. Si se producen varios eventos de conexión y desconexión, IoT Central registra el más cercano al final de la ventana de tiempo. Por ejemplo, si un dispositivo se desconecta y se vuelve a conectar dentro de la ventana de tiempo, IoT Central registra el evento de conexión. Actualmente, la ventana de tiempo es de aproximadamente un minuto.

Diagrama que muestra la ventana de eventos para eventos conectados y desconectados .

Vea el vídeo siguiente para obtener más información sobre cómo supervisar el estado de conexión de un dispositivo:

Puede incluir eventos de conexión y desconexión en las exportaciones desde IoT Central. Para más información, vea Reacción a eventos de IoT Hub > Limitaciones de los eventos de dispositivo conectado y dispositivo desconectado.

Compatibilidad con SDK

La oferta de SDK de dispositivos de Azure es la manera más fácil de implementar el código del dispositivo. En la actualidad, están disponibles los siguientes SDK:

Características del SDK y la conectividad de IoT Hub

Toda comunicación del dispositivo con la instancia de IoT Hub utiliza las siguientes opciones de conectividad:

En la tabla siguiente se resume cómo las características de los dispositivos de Azure IoT Central se asignan a las características de IoT Hub:

Azure IoT Central Azure IoT Hub
Telemetría Mensajería de un dispositivo a la nube
Comandos sin conexión Mensajería de la nube a un dispositivo
Propiedad Propiedades notificadas de dispositivos gemelos
Propiedad (grabable) Propiedades deseadas y notificadas de dispositivos gemelos
Get-Help Métodos directos

Protocolos

Los SDK de dispositivo admiten los siguientes protocolos de red para conectarse a un centro de IoT:

  • MQTT
  • AMQP
  • HTTPS

Para obtener información sobre estos protocolos de diferencia y guía sobre cómo elegir uno, consulte Elección de un protocolo de comunicación.

Si el dispositivo no puede usar ninguno de los protocolos admitidos, utilice Azure IoT Edge para realizar la conversión de protocolos. IoT Edge es compatible con otros escenarios de inteligencia perimetral para descargar el procesamiento desde la aplicación de Azure IoT Central.

Seguridad

Todos los datos intercambiados entre los dispositivos y la instancia de Azure IoT Central están cifrados. IoT Hub autentica todas las solicitudes de un dispositivo que se conecta a cualquiera de los puntos de conexión de IoT Hub orientados al dispositivo. Para evitar el intercambio de credenciales por la red, el dispositivo utiliza tokens firmados para autenticarse. Para más información, consulte Control del acceso a IoT Hub.

Pasos siguientes

Algunos pasos siguientes sugeridos son: