¿Qué es Azure IoT Hub Device Provisioning Service?

IoT Hub Device Provisioning Service (DPS) es un servicio auxiliar para IoT Hub que habilita el aprovisionamiento sin interacción Just-In-Time a la instancia correcta del centro de IoT sin necesidad de intervención humana. DPS habilita el aprovisionamiento de millones de dispositivos de forma segura y escalable. Muchos de los pasos manuales normalmente incluidos en el aprovisionamiento se automatizan con DPS para reducir el tiempo de implementación de los dispositivos de IoT y reducir el riesgo de error manual.

Funcionamiento del DPS (servicio de aprovisionamiento de dispositivos)

En el diagrama siguiente se describe lo que sucede en segundo plano para aprovisionar un dispositivo con DPS.

Diagrama en el que se muestra cómo funcionan conjuntamente el dispositivo, Device Provisioning Service e IoT Hub.

Antes de que comience el flujo de aprovisionamiento de dispositivos, hay dos pasos manuales de preparación:

  • En el lado del dispositivo, el fabricante de este lo prepara para el aprovisionamiento preconfigurándolo con sus credenciales de autenticación y el identificador de servicio y el punto de conexión asignados de Device Provisioning Service.
  • En la nube, usted o el fabricante del dispositivo preparan la instancia de DPS con inscripciones individuales y grupos de inscripción que identifican los dispositivos válidos y definen cómo se deben aprovisionar.

Una vez configurados el dispositivo y la nube para el aprovisionamiento, los pasos siguientes se inician automáticamente en cuanto el dispositivo se enciende por primera vez:

  1. El dispositivo se activa por primera vez y, a continuación, se conecta al punto de conexión de DPS y presenta las credenciales de autenticación.
  2. La instancia de DPS comprueba la identidad del dispositivo en su lista de inscripción. Una vez comprobada su identidad, DPS asigna el dispositivo a un centro de IoT y lo registra en él.
  3. La instancia de DPS recibe el identificador de dispositivo y la información de registro del centro asignado y pasa esa información al dispositivo.
  4. El dispositivo usa su información de registro para conectarse directamente a su centro de IoT asignado y autenticarse.
  5. El dispositivo y el centro de IoT comienzan a comunicarse directamente. La instancia de DPS no tiene ningún otro rol como intermediario a menos que el dispositivo se tenga que volver a aprovisionar.

Cuándo se debe usar el servicio Device Provisioning

Hay muchos escenarios de aprovisionamiento en los que DPS es una excelente opción para conectar dispositivos y configurarlos para IoT Hub como, por ejemplo:

  • Aprovisionamiento sin intervención del usuario en una única solución de IoT sin codificar la información de conexión de IoT Hub instalada de fábrica (configuración inicial)
  • Equilibrado de carga de dispositivos en varios centros
  • Conexión de dispositivos a la solución de IoT de su propietario según los datos de transacción de ventas (multiinquilino)
  • Conexión de dispositivos a una solución de IoT concreta en función del caso de uso (aislamiento de la solución)
  • Conexión de un dispositivo a la instancia de IoT Hub con la latencia más baja (particionamiento geográfico)
  • Reaprovisionamiento basado en un cambio del dispositivo
  • Reversión de las claves utilizadas por el dispositivo para conectarse a IoT Hub (si no utiliza certificados X.509 para conectarse)

El aprovisionamiento de dispositivos IoT Edge anidados (jerarquías primarias o secundarias) no es compatible actualmente con DPS.

Proceso de aprovisionamiento

Hay dos pasos que tienen lugar antes de un aprovisionamiento de dispositivos con DPS:

  • El paso de fabricación en el que se crea el dispositivo y se prepara la configuración de fábrica, y
  • el paso de configuración en la nube en el que el servicio Device Provisioning se configura para el aprovisionamiento automatizado.

Ambos pasos se pueden incorporar a los procesos de fabricación e implementación existentes. DPS simplifica incluso algunos procesos de implementación que implican una gran cantidad de trabajo manual para obtener la información de conexión del dispositivo.

Paso de fabricación

Este paso es todo lo que sucede en la línea de fabricación. Los roles implicados en este paso incluyen diseñador de Silicon, fabricante de Silicon, integrador y/o el fabricante final del dispositivo. En este paso se crea el propio hardware.

DPS no introduce un nuevo paso en el proceso de fabricación; en su lugar, se vincula al paso existente que instala el software inicial y (idealmente) el módulo de seguridad de hardware (HSM) en el dispositivo. En lugar de crear un id. de dispositivo en este paso, el dispositivo se programa con la información del servicio de aprovisionamiento, lo que le permite llamar al servicio de aprovisionamiento para obtener su información de conexión o la asignación de la solución de IoT cuando se activa.

También en este paso, el fabricante proporciona al operador o implementador del dispositivo la información clave de identificación. Proporcionar esa información puede ser tan simple como confirmar que todos los dispositivos tienen un certificado X.509 generado a partir de un certificado de firma proporcionado por el operador o el implementador del dispositivo o tan complicado como extraer la parte pública de una clave de aprobación de TPM de cada dispositivo TPM. Muchos fabricantes de silicio ofrecen estos servicios.

Paso de configuración de la nube

Este paso trata sobre la configuración de la nube para un aprovisionamiento automático adecuado. Por lo general hay dos tipos de usuarios implicados en el paso de configuración de la nube: alguien que sabe cómo se deben configurar los dispositivos inicialmente (un operador del dispositivo) y otra persona que sabe cómo se van a dividir los dispositivos entre las instancias de IoT Hub (un operador de la solución).

Hay una configuración inicial única del servicio de aprovisionamiento, que normalmente controla el operador de solución. Una vez configurado el servicio de aprovisionamiento, no tiene que modificarse a menos que cambie el caso de uso.

Una vez configurado el servicio para el aprovisionamiento automático, debe estar preparado para inscribir dispositivos. El operador de dispositivos realiza este paso, que conoce la configuración deseada de los dispositivos y se asegura de que el servicio de aprovisionamiento pueda atestiguar correctamente la identidad de un dispositivo. El operador del dispositivo toma la información clave de identificación del fabricante y lo agrega a la lista de inscripción. Puede haber actualizaciones posteriores de la lista de inscripción a medida que se agregan nuevas entradas o se actualizan las entradas existentes con la información más reciente sobre los dispositivos.

Registro y aprovisionamiento

Aprovisionamiento tiene varios significados según el sector en el que se use el término. En el contexto del aprovisionamiento de dispositivos de IoT para su solución en la nube, el aprovisionamiento es un proceso de dos partes:

  • La primera consiste en establecer la conexión inicial entre el dispositivo y la solución de IoT registrando el dispositivo.
  • La segunda es aplicar la configuración apropiada en el dispositivo en función de los requisitos específicos de la solución en la que se registró.

Una vez que se han completado los dos pasos, podemos decir que el dispositivo ha sido totalmente aprovisionado. Algunos servicios en la nube solo proporcionan el primer paso del proceso de aprovisionamiento, el registro de dispositivos en el punto de conexión de la solución de IoT, pero no proporcionan la configuración inicial. DPS automatiza ambos pasos para proporcionar una experiencia perfecta de aprovisionamiento para el dispositivo.

Características del servicio Device Provisioning

DPS tiene muchas características que hacen que resulte idóneo para el aprovisionamiento de dispositivos.

  • Atestación segura: compatible con las identidades X.509 y con las basadas en TPM.
  • Lista de inscripción que contiene el registro completo de dispositivos o grupos de dispositivos que pueden registrarse en algún momento. La lista de inscripción contiene información sobre la configuración deseada del dispositivo una vez que se registra, y se puede actualizar en cualquier momento.
  • Varias directivas de asignación para controlar la forma en que DPS asigna dispositivos a los centros de IoT para dar soporte a los escenarios: menos latencia, distribución ponderada uniformemente (valor predeterminado) y configuración estática. Para determinar la latencia, se usa el mismo método que Traffic Manager. También se admite la asignación personalizada, que permite implementar directivas de asignación propias mediante webhooks hospedados en Azure Functions.
  • Registros de supervisión y diagnóstico para asegurarse de que todo funciona correctamente.
  • La compatibilidad con varios centros permite que Data Protection Manager asigne dispositivos a más de un centro de IoT. DPS puede comunicarse con los centros de varias suscripciones de Azure.
  • La compatibilidad entre regiones permite que DPS asigne dispositivos a los centros de IoT en otras regiones.
  • El cifrado de datos en reposo permite que los datos de Data Protection Manager se cifren y descifren de forma transparente mediante el cifrado AES de 256 bits, uno de los cifrados de bloques más sólidos disponibles, y que es compatible con FIPS 140-2.

Para más información sobre los conceptos y las características implicadas en el aprovisionamiento de dispositivos, consulte el artículo Terminología de DPS, así como los restantes artículos conceptuales de la misma sección.

Compatibilidad multiplataforma

DPS, al igual que todos los servicios de Azure IoT, funciona entre plataformas con varios sistemas operativos. Azure ofrece distintos SDK de código abierto en una variedad de lenguajes para facilitar la conexión de los dispositivos y la administración del servicio. DPS admite los siguientes protocolos de conexión de dispositivos:

  • HTTPS
  • AMQP
  • AMQP sobre Web Sockets
  • MQTT
  • MQTT sobre Web Sockets

DPS solo admite conexiones HTTPS para las operaciones de servicio.

Regions

DPS está disponible en muchas regiones. La lista de las regiones admitidas para todos los servicios está disponible en regiones de Azure. Puede consultar la disponibilidad del servicio Device Provisioning en la página Estado de Azure.

Para lograr resistencia y confiabilidad, recomendamos la implementación en una de las regiones que admiten las Availability Zones.

Consideración sobre la residencia de datos

La instancia de Device Provisioning Service almacena los datos de los clientes. De forma predeterminada, los datos del cliente se replican en una región secundaria para que se admitan escenarios de recuperación ante desastres. En el caso de las implementaciones en el Sudeste Asiático y Sur de Brasil, los clientes pueden optar por mantener los datos solo dentro de esa región deshabilitando la recuperación ante desastres. Para obtener más información, consulte Replicación entre regiones en Azure.

DPS usa el mismo punto de conexión de aprovisionamiento de dispositivos para todas las instancias del servicio de aprovisionamiento y realiza el equilibrio de carga del tráfico en el punto de conexión de servicio disponible más cercano. Como resultado, los secretos de autenticación se pueden transferir temporalmente fuera de la región donde se creó inicialmente la instancia de DPS. Sin embargo, una vez conectado el dispositivo, los datos del dispositivo fluyen directamente a la región original de la instancia de DPS. Para garantizar que los datos no abandonen la región inicial secundaria, use un punto de conexión privado. Para más información sobre cómo configurar puntos de conexión privados, consulte Compatibilidad de DPS con redes virtuales.

Cuotas y límites

Cada suscripción de Azure tiene límites de cuota predeterminados que pueden afectar al ámbito de su solución de IoT. El límite actual es de 10 instancias de DPS por suscripción.

Para obtener más información sobre los límites de cuota, consulte Límites del servicio de suscripción de Azure.

En la tabla siguiente se enumeran los límites que se aplican a los recursos de Azure IoT Hub Device Provisioning Service.

Recurso Límite ¿Ajustable?
Servicios máximos de aprovisionamiento de dispositivos por suscripción de Azure 10 No
Número máximo de registros 1 000 000 No
Número máximo de inscripciones individuales 1 000 000 No
Número máximo de grupos de inscripciones (certificado X.509) 100 No
Número máximo de grupos de inscripciones (clave simétrica) 100 No
Número máximo de CA 25 No
Número máximo de centros de IoT vinculados 50 No
Tamaño máximo de mensaje 96 KB No

Sugerencia

Si el límite máximo en los grupos de inscripción de clave simétrica es un problema de bloqueo, se recomienda usar inscripciones individuales como solución alternativa.

El servicio de aprovisionamiento de dispositivos tiene los siguientes límites de frecuencia.

Tarifa Valor por unidad ¿Ajustable?
Operations 1000/min/servicio No
Registros de dispositivos 1000/min/servicio No
Operación de sondeo de dispositivos 5/10 s/dispositivo No

Operaciones y precios de servicios facturables

Cada llamada API en DPS se puede facturar como una operación. Esto incluye todas las API de servicio y la API de registro de dispositivos.

En las tablas siguientes se muestra el estado facturable actual de cada operación de API del servicio DPS. Para más información sobre los precios de DPS, seleccione Tabla de precios en la parte superior de la página Precios de Azure IoT Hub. A continuación, seleccione la pestaña IoT Hub Device Provisioning Service y la moneda y la región del servicio.

API Operación ¿Facturable?
API del dispositivo Comprobación del estado de registro del dispositivo No
API del dispositivo Comprobación del estado de la operación No
API del dispositivo Register Device Yes
API de DPS (estado de registro) Eliminar Yes
API de DPS (estado de registro) Get Yes
API de DPS (estado de registro) Consultar Yes
API de DPS (grupo de inscripción) Create or Update (Crear o actualizar) Yes
API de DPS (grupo de inscripción) Eliminar Yes
API de DPS (grupo de inscripción) Get Yes
API de DPS (grupo de inscripción) Obtención de mecanismo de atestación Yes
API de DPS (grupo de inscripción) Consultar Yes
API de DPS (grupo de inscripción) Ejecución de operación masiva Yes
API de DPS (inscripción individual) Create or Update (Crear o actualizar) Yes
API de DPS (inscripción individual) Eliminar Yes
API de DPS (inscripción individual) Get Yes
API de DPS (inscripción individual) Obtención de mecanismo de atestación Yes
API de DPS (inscripción individual) Consultar Yes
API de DPS (inscripción individual) Ejecución de operación masiva Yes
API de certificado de DPS Create or Update (Crear o actualizar) No
API de certificado de DPS Eliminar No
API de certificado de DPS Generación del código de verificación No
API de certificado de DPS Get No
API de certificado de DPS Lista No
API de certificado de DPS Comprobación de certificado No
API de recurso de IoT DPS Comprobación de la disponibilidad del nombre del servicio de aprovisionamiento No
API de recurso de IoT DPS Create or Update (Crear o actualizar) No
API de recurso de IoT DPS Eliminar No
API de recurso de IoT DPS Get No
API de recurso de IoT DPS Obtiene el resultado de la operación. No
API de recurso de IoT DPS Enumerar por grupo de recursos No
API de recurso de IoT DPS Enumerar por suscripción No
API de recurso de IoT DPS Enumeración por claves No
API de recurso de IoT DPS Enumeración de claves para el nombre de clave No
API de recurso de IoT DPS Enumeración de SKU válidas No
API de recurso de IoT DPS Actualizar No

DPS permite automatizar el aprovisionamiento de dispositivos con Azure IoT Hub. Más información sobre IoT Hub.

Nota

DPS no admite actualmente el aprovisionamiento de dispositivos perimetrales anidados (jerarquías de elementos primarios y secundarios).

Las aplicaciones de IoT Central usan una instancia interna de DPS para administrar las conexiones de dispositivos. Para obtener más información, consulte Conexión de dispositivos a IoT Central.

Pasos siguientes

Ahora tiene una visión general sobre el aprovisionamiento de dispositivos de IoT en Azure. El paso siguiente es probar un escenario global de IoT.

Configuración de IoT Hub Device Provisioning Service con Azure Portal

Creación y aprovisionamiento de un dispositivo simulado