Aprovisionamiento de dispositivos con el servicio Azure IoT Hub Device ProvisioningProvisioning devices with Azure IoT Hub Device Provisioning Service

Microsoft Azure proporciona un amplio conjunto de servicios públicos en la nube integrados para todas las necesidades de su solución de IoT.Microsoft Azure provides a rich set of integrated public cloud services for all your IoT solution needs. 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.The IoT Hub Device Provisioning Service (DPS) is a helper service for IoT Hub that enables zero-touch, just-in-time provisioning to the right IoT hub without requiring human intervention. DPS habilita el aprovisionamiento de millones de dispositivos de forma segura y escalable.DPS enables the provisioning of millions of devices in a secure and scalable manner.

Cuándo se debe usar el servicio Device ProvisioningWhen to use Device Provisioning Service

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:There are many provisioning scenarios in which DPS is an excellent choice for getting devices connected and configured to IoT Hub, such as:

  • 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)Zero-touch provisioning to a single IoT solution without hardcoding IoT Hub connection information at the factory (initial setup)
  • Equilibrado de carga de dispositivos en varios centrosLoad-balancing devices across multiple hubs
  • Conexión de dispositivos a la solución de IoT de su propietario según los datos de transacción de ventas (multiinquilino)Connecting devices to their owner's IoT solution based on sales transaction data (multitenancy)
  • Conexión de dispositivos a una solución de IoT concreta en función del caso de uso (aislamiento de la solución)Connecting devices to a particular IoT solution depending on use-case (solution isolation)
  • Conexión de un dispositivo a la instancia de IoT Hub con la latencia más baja (particionamiento geográfico)Connecting a device to the IoT hub with the lowest latency (geo-sharding)
  • Reaprovisionamiento basado en un cambio del dispositivoReprovisioning based on a change in the device
  • Reversión de las claves utilizadas por el dispositivo para conectarse a IoT Hub (si no utiliza certificados X.509 para conectarse)Rolling the keys used by the device to connect to IoT Hub (when not using X.509 certificates to connect)

Entre bambalinasBehind the scenes

Todos los escenarios mencionados en la sección anterior se pueden realizar mediante DPS para el aprovisionamiento sin intervención del usuario con el mismo flujo.All the scenarios listed in the previous section can be done using DPS for zero-touch provisioning with the same flow. 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.Many of the manual steps traditionally involved in provisioning are automated with DPS to reduce the time to deploy IoT devices and lower the risk of manual error. La siguiente sección describe lo que ocurre en segundo plano a la hora de aprovisionar un dispositivo.The following section describes what goes on behind the scenes to get a device provisioned. El primer paso es manual pero todos los demás pasos se han automatizado.The first step is manual, all of the following steps are automated.

Flujo básico de aprovisionamiento

  1. El fabricante del dispositivo agrega la información de registro del dispositivo a la lista de inscripción en Azure Portal.Device manufacturer adds the device registration information to the enrollment list in the Azure portal.
  2. El dispositivo contacta con el punto de conexión de DPS configurado de fábrica.Device contacts the DPS endpoint set at the factory. El dispositivo pasa la información de identificación a DPS para demostrar su identidad.The device passes the identifying information to DPS to prove its identity.
  3. DPS valida la identidad del dispositivo mediante la validación del identificador del registro y la clave en la entrada de la lista de inscripción mediante el uso de un desafío nonce (Módulo de plataforma segura) o una comprobación estándar X.509 (X.509).DPS validates the identity of the device by validating the registration ID and key against the enrollment list entry using either a nonce challenge (Trusted Platform Module) or standard X.509 verification (X.509).
  4. DPS registra el dispositivo con un IoT Hub y rellena el estado deseado de los dispositivos gemelos.DPS registers the device with an IoT hub and populates the device's desired twin state.
  5. El centro de IoT devuelve la información del identificador de dispositivo a DPS.The IoT hub returns device ID information to DPS.
  6. DPS devuelve la información de conexión del centro de IoT al dispositivo.DPS returns the IoT hub connection information to the device. El dispositivo ya puede empezar a enviar datos directamente a la instancia de IoT Hub.The device can now start sending data directly to the IoT hub.
  7. El dispositivo se conecta a IoT Hub.The device connects to IoT hub.
  8. El dispositivo obtiene el estado deseado del dispositivo gemelo en la instancia de IoT Hub.The device gets the desired state from its device twin in IoT hub.

Proceso de aprovisionamientoProvisioning process

Hay dos pasos diferentes en el proceso de implementación de un dispositivo, en los que DPS toma parte, que se pueden llevar a cabo de forma independiente:There are two distinct steps in the deployment process of a device in which DPS takes a part that can be done independently:

  • El paso de fabricación en el que se crea el dispositivo y se prepara la configuración de fábrica, yThe manufacturing step in which the device is created and prepared at the factory, and
  • el paso de configuración en la nube en el que el servicio Device Provisioning se configura para el aprovisionamiento automatizado.The cloud setup step in which the Device Provisioning Service is configured for automated provisioning.

Ambos pasos se adaptan perfectamente con los procesos de fabricación e implementación existentes.Both these steps fit in seamlessly with existing manufacturing and deployment processes. 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.DPS even simplifies some deployment processes that involve manual work to get connection information onto the device.

Paso de fabricaciónManufacturing step

Este paso es todo lo que sucede en la línea de fabricación.This step is all about what happens on the manufacturing line. Los roles implicados en este paso incluyen diseñador de Silicon, fabricante de Silicon, integrador y/o el fabricante final del dispositivo.The roles involved in this step include silicon designer, silicon manufacturer, integrator and/or the end manufacturer of the device. En este paso se crea el propio hardware.This step is concerned with creating the hardware itself.

DPS no introduce un nuevo paso en el proceso de fabricación; más bien, se vincula al paso existente que instala el software inicial e (idealmente) el HSM en el dispositivo.DPS does not introduce a new step in the manufacturing process; rather, it ties into the existing step that installs the initial software and (ideally) the HSM on the device. En lugar de crear un identificador de dispositivo en este paso, el dispositivo se programa con la información del servicio de aprovisionamiento, quedando así habilitado para llamar al servicio de aprovisionamiento para obtener la información de conexión y la asignación de solución de IoT al activarse.Instead of creating a device ID in this step, the device is programmed with the provisioning service information, enabling it to call the provisioning service to get its connection info/IoT solution assignment when it is switched on.

También en este paso, el fabricante proporciona al operador o implementador del dispositivo la información clave de identificación.Also in this step, the manufacturer supplies the device deployer/operator with identifying key information. 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.Supplying that information could be as simple as confirming that all devices have an X.509 certificate generated from a signing certificate provided by the device deployer/operator, or as complicated as extracting the public portion of a TPM endorsement key from each TPM device. Muchos fabricantes de Silicon ofrecen estos servicios hoy en día.These services are offered by many silicon manufacturers today.

Paso de configuración de la nubeCloud setup step

Este paso trata sobre la configuración de la nube para un aprovisionamiento automático adecuado.This step is about configuring the cloud for proper automatic provisioning. 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).Generally there are two types of users involved in the cloud setup step: someone who knows how devices need to be initially set up (a device operator), and someone else who knows how devices are to be split among the IoT hubs (a solution operator).

Hay una configuración inicial única del aprovisionamiento que es obligatoria, algo que normalmente realiza el operador de la solución.There is a one-time initial setup of the provisioning that must occur, which is usually handled by the solution operator. Una vez configurado el servicio de aprovisionamiento, este no tiene que modificarse a menos que cambie el caso de uso.Once the provisioning service is configured, it does not have to be modified unless the use case changes.

Una vez configurado el servicio del aprovisionamiento automático, este debe estar preparado para inscribir dispositivos.After the service has been configured for automatic provisioning, it must be prepared to enroll devices. Este lo realiza el operador del dispositivo, que conoce la configuración deseada de los dispositivos y es el responsable de garantizar que el servicio de aprovisionamiento pueda correctamente dar fe de la identidad del dispositivo cuando se trate de buscar su instancia de IoT Hub.This step is done by the device operator, who knows the desired configuration of the device(s) and is in charge of making sure the provisioning service can properly attest to the device's identity when it comes looking for its IoT hub. El operador del dispositivo toma la información clave de identificación del fabricante y lo agrega a la lista de inscripción.The device operator takes the identifying key information from the manufacturer and adds it to the enrollment list. 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.There can be subsequent updates to the enrollment list as new entries are added or existing entries are updated with the latest information about the devices.

Registro y aprovisionamientoRegistration and provisioning

Aprovisionamiento tiene varios significados según el sector en el que se use el término.Provisioning means various things depending on the industry in which the term is used. En el contexto del aprovisionamiento de dispositivos de IoT para su solución en la nube, el aprovisionamiento es un proceso de dos partes:In the context of provisioning IoT devices to their cloud solution, provisioning is a two part process:

  1. La primera consiste en establecer la conexión inicial entre el dispositivo y la solución de IoT registrando el dispositivo.The first part is establishing the initial connection between the device and the IoT solution by registering the device.
  2. 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ó.The second part is applying the proper configuration to the device based on the specific requirements of the solution it was registered to.

Una vez que se han completado los dos pasos, podemos decir que el dispositivo ha sido totalmente aprovisionado.Once both of those two steps have been completed, we can say that the device has been fully provisioned. Algunos servicios en la nube solo proporcionan el primer paso del proceso de aprovisionamiento, registrando los dispositivos en el punto de conexión de la solución de IoT, pero sin proporcionar la configuración inicial.Some cloud services only provide the first step of the provisioning process, registering devices to the IoT solution endpoint, but do not provide the initial configuration. DPS automatiza ambos pasos para proporcionar una experiencia perfecta de aprovisionamiento para el dispositivo.DPS automates both steps to provide a seamless provisioning experience for the device.

Características del servicio Device ProvisioningFeatures of the Device Provisioning Service

DPS tiene muchas características que hacen que resulte idóneo para el aprovisionamiento de dispositivos.DPS has many features, making it ideal for provisioning devices.

  • Atestación segura: compatible con las identidades X.509 y con las basadas en TPM.Secure attestation support for both X.509 and TPM-based identities.
  • Lista de inscripción que contiene el registro completo de dispositivos o grupos de dispositivos que pueden registrarse en algún momento.Enrollment list containing the complete record of devices/groups of devices that may at some point register. 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.The enrollment list contains information about the desired configuration of the device once it registers, and it can be updated at any time.
  • 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 a través de la lista de inscripción.Multiple allocation policies to control how DPS assigns devices to IoT hubs in support of your scenarios: Lowest latency, evenly weighted distribution (default), and static configuration via the enrollment list. Para determinar la latencia, se usa el mismo método que Traffic Manager.Latency is determined using the same method as Traffic Manager.
  • Registros de supervisión y diagnóstico para asegurarse de que todo funciona correctamente.Monitoring and diagnostics logging to make sure everything is working properly.
  • La compatibilidad con varios centros permite que Data Protection Manager asigne dispositivos a más de un centro de IoT.Multi-hub support allows DPS to assign devices to more than one IoT hub. DPS puede comunicarse con los centros de varias suscripciones de Azure.DPS can talk to hubs across multiple Azure subscriptions.
  • La compatibilidad entre regiones permite que DPS asigne dispositivos a los centros de IoT en otras regiones.Cross-region support allows DPS to assign devices to IoT hubs in other regions.
  • 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.Encryption for data at rest allows data in DPS to be encrypted and decrypted transparently using 256-bit AES encryption, one of the strongest block ciphers available, and is FIPS 140-2 compliant.

Para más información sobre los conceptos y las características implicadas en el aprovisionamiento de dispositivos, consulte el tema Terminología de DPS, así como los restantes temas conceptuales de la misma sección.You can learn more about the concepts and features involved in device provisioning by reviewing the DPS terminology topic along with the other conceptual topics in the same section.

Compatibilidad multiplataformaCross-platform support

DPS, al igual que todos los servicios de Azure IoT, funciona entre plataformas con diversos sistemas operativos.Just like all Azure IoT services, DPS works cross-platform with a variety of operating systems. Azure ofrece distintos SDK de código abierto en una variedad de lenguajes para facilitar la conexión de dispositivos y la administración del servicio.Azure offers open-source SDKs in a variety of languages to facilitate connecting devices and managing the service. DPS admite los siguientes protocolos de conexión de dispositivos:DPS supports the following protocols for connecting devices:

  • HTTPSHTTPS
  • AMQPAMQP
  • AMQP sobre Web SocketsAMQP over web sockets
  • MQTTMQTT
  • MQTT sobre Web SocketsMQTT over web sockets

DPS solo admite conexiones HTTPS para las operaciones de servicio.DPS only supports HTTPS connections for service operations.

RegionsRegions

DPS está disponible en muchas regiones.DPS is available in many regions. Hay una lista actualizada de las regiones existentes y de las recién anunciadas para todos los servicios en Regiones de Azure.The updated list of existing and newly announced regions for all services is at Azure Regions. Puede consultar la disponibilidad del servicio Device Provisioning en la página Estado de Azure.You can check availability of the Device Provisioning Service on the Azure Status page.

Nota

DPS es global y no está enlazado a una ubicación.DPS is global and not bound to a location. Sin embargo, debe especificar una región en la que van a residir los metadatos asociados con el perfil de DPS.However, you must specify a region in which the metadata associated with your DPS profile will reside.

DisponibilidadAvailability

Hay un Acuerdo de Nivel de Servicio del 99,9 % para DPS y también puede leer el SLA.There is a 99.9% Service Level Agreement for DPS, and you can read the SLA. En el SLA de Azure completo se explica la disponibilidad garantizada de Azure como un conjunto.The full Azure SLA explains the guaranteed availability of Azure as a whole.

CuotasQuotas

Cada suscripción de Azure tiene límites de cuota predeterminados que pueden afectar al ámbito de su solución de IoT.Each Azure subscription has default quota limits in place that could impact the scope of your IoT solution. El límite actual por suscripción es de 10 servicios Device Provisioning por suscripción.The current limit on a per-subscription basis is 10 Device Provisioning Services per subscription.

En la tabla siguiente se enumeran los límites que se aplican a los recursos de Azure IoT Hub Device Provisioning Service.The following table lists the limits that apply to Azure IoT Hub Device Provisioning Service resources.

ResourceResource LímiteLimit
Servicios máximos de aprovisionamiento de dispositivos por suscripción de AzureMaximum device provisioning services per Azure subscription 1010
Número máximo de inscripcionesMaximum number of enrollments 1 000 0001,000,000
Número máximo de registrosMaximum number of registrations 1 000 0001,000,000
Número máximo de grupos de inscripcionesMaximum number of enrollment groups 100100
Número máximo de CAMaximum number of CAs 2525
Número máximo de centros de IoT vinculadosMaximum number of linked IoT hubs 5050
Tamaño máximo de mensajeMaximum size of message 96 KB96 KB

Nota

Para aumentar el número de inscripciones y registros del servicio de aprovisionamiento, póngase en contacto con Soporte técnico de Microsoft.To increase the number of enrollments and registrations on your provisioning service, contact Microsoft Support.

Nota

No se puede aumentar el número máximo de entidades de certificación.Increasing the maximum number of CAs is not supported.

El servicio de aprovisionamiento de dispositivos limita las solicitudes cuando se superan las cuotas siguientes.The Device Provisioning Service throttles requests when the following quotas are exceeded.

LimitaciónThrottle Valor por unidadPer-unit value
OperacionesOperations 200/min/servicio200/min/service
Registros de dispositivosDevice registrations 200/min/servicio200/min/service
Operación de sondeo de dispositivosDevice polling operation 5/10 s/dispositivo5/10 sec/device

Más información sobre los límites de cuota:For more details on quota limits:

DPS permite automatizar el aprovisionamiento de dispositivos con Azure IoT Hub.DPS automates device provisioning with Azure IoT Hub. Más información sobre IoT Hub.Learn more about IoT Hub.

Pasos siguientesNext steps

Ahora tiene una visión general sobre el aprovisionamiento de dispositivos de IoT en Azure.You now have an overview of provisioning IoT devices in Azure. El paso siguiente es probar un escenario global de IoT.The next step is to try out an end-to-end IoT scenario.

Configuración de IoT Hub Device Provisioning Service con Azure PortalSet up IoT Hub Device Provisioning Service with the Azure portal

Creación y aprovisionamiento de un dispositivo simuladoCreate and provision a simulated device

Configurar el dispositivo para el aprovisionamientoSet up device for provisioning