Compartir a través de


¿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. En una solución basada en la nube, DPS permite 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 prepara la instancia de Device Provisioning Service con inscripciones que identifican dispositivos válidos y definen cómo se deben aprovisionar.

Una vez configurado el dispositivo y la nube para el aprovisionamiento, los pasos siguientes comienzan automáticamente cuando el dispositivo se activa 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 sus 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)

DPS no admite el aprovisionamiento de dispositivos IoT Edge anidados (jerarquías primarias o secundarias).

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 el diseñador de silicio, el fabricante de silicio, el integrador 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 identificador 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 la 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 completados ambos pasos, podemos decir que el dispositivo está completamente aprovisionado.

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 de un 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. La asignación personalizada le permite implementar sus propias directivas de asignación a través de webhooks hospedados en Azure Functions en lugar de usar uno de los valores predeterminados.
  • 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
  • protocolo MQTT
  • MQTT sobre Web Sockets

*DPS solo admite conexiones HTTPS para operaciones de servicio.

Regiones

DPS está disponible en muchas regiones. Para obtener la lista de regiones admitidas para todos los servicios, consulte Regiones de Azure. Puede comprobar la disponibilidad del servicio Device Provisioning en la página de estado de Azure .

Para lograr resistencia y confiabilidad, se recomienda implementar en una de las regiones que admiten zonas de disponibilidad.

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 podrían afectar al ámbito de la solución de IoT. El límite actual es de 10 instancias de DPS por suscripción.

Para más información sobre los límites de cuota, consulte Límites de 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
Servicios máximos de aprovisionamiento de dispositivos por suscripción de Azure 10
Número máximo de registros 1 000 000
Número máximo de inscripciones individuales 1 000 000
Número máximo de grupos de inscripciones (certificado X.509) 100
Número máximo de grupos de inscripciones (clave simétrica) 100
Número máximo de CA 25
Número máximo de centros de IoT vinculados 50
Tamaño máximo de mensaje 96 KB

Sugerencia

Si el límite estricto en los grupos de inscripción de claves simétricas es un obstáculo, use inscripciones individuales como solución alternativa.

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

Tarifa Valor por unidad
Operaciones 1000/min/servicio
Registros de dispositivos 1000/min/servicio
Operación de sondeo de dispositivos 5/10 s/dispositivo

Operaciones y precios de servicios facturables

Cada llamada API en DPS, ya sea desde las API de servicio o la API de registro de dispositivos, se puede facturar como una operación.

En las tablas siguientes se muestra el estado facturable actual de cada operación de API de 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.

Interfaz de Programación de Aplicaciones (API) Operación ¿Facturable?
API de dispositivo DPS: registro en tiempo de ejecución Búsqueda de estado de registro de dispositivos No
Búsqueda de estado de operaciones No
Registrar dispositivo
API del servicio DPS: estado de registro de dispositivos Todos
API del servicio DPS: grupo de inscripción Todos
API del servicio DPS: inscripción individual Todos
DPS Certificate API Todos No
API de recursos de IoT DPS Todos No

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

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

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

Creación y aprovisionamiento de un dispositivo simulado