Skip to main content

Azure IoT Hub Device Provisioning Service介绍

分类:  Azure物联网 标签:  #Azure #Azure IoT Device Provisioning Service # 发布于: 2023-06-14 20:07:59

本章我们来快速的学习一下Azure Iot Hub Device Provisioning Service, 即DPS服务。DPS服务是一个针对于Azure IoT Hub的辅助服务,它只是针对不同的场景对Azure IoT Hub的功能进行了增强,主要体现在如下几个方面:

  1. 使用DPS服务创建设备自动登记,注册,初始化的物联网解决方案。
  2. 使用DPS充当一个负载均衡,使得设备可以自动的连接到多个不同的Azure IoT Hub上,并且可以自动切换和数据迁移。
  3. 使用DPS集成的traffic Manager的功能降低设备和Azure IoT Hub之间的连接延迟,DPS根据规则可以自动使得设备连接离设备位置最近的IoT 上。

针对以上场景,我们可以借用官方的一个图来说明:


关于上图的步骤说明:

  1. 设备制造上通过Azure Portal(或者其他工具)向DPS服务登记列表中添加设备的注册信息(包括一些元数据)
  2. 设备加电后,通过SDK连接DPS的公开连接终点,并向DPS服务传递认证信息。
  3. DPS服务验证设备标识。
  4. 设备标识验证通过后,DPS服务根据预定的规则向Azure IoT Hub注册该设备,同时向Azure IoT Hub同步预设的设备初始状态信息(通过预期的device twin)
  5. 设备注册和信息同步完成之后,DPS服务从IoT Hub接收设备的id等基本信息。
  6. DPS返回连接信息到设备端口,有了这些信息之后,设备可以通过该信息直接连接Azure IoT Hub
  7. 设备连接到Azure IoT Hub
  8. 设备通过由DPS同步到Azure IoT Hub的状态信息,初始化自己(by 预期的device twin)

根据DPS服务在整个物联网解决方案中的定位,设备初始化实际上是包含各自独立的两个步骤:

  1. 设备制造阶段:主要是指设备在产线被生产以及置入基本的信息阶段,例如使用HSM 以及TPM保存DPS的基本信息等等。
  2. 通过云进行设置的步骤:即设备从工厂出厂后第一次加电,进行初始化的过程。

这个两个过程也即是我们整个物联网解决方案中最为重要的一环。

DPS主要的特性:

  • 安全认证方式:用户可以通过X.509或者TPM进行标识认证
  • 登记列表: 主持单个设备登记和分组登记,无论是单个设备或者分组,DPS都包含详细和完整的设备相关的记录和数据。
  • 支持多种IoT Hub分配策略,例如支持通过Traffic Manager自动分配离设备最近的Hub进行注册。
  • 提供监控和诊断日志
  • 支持多个Azure IoT Hub
  • 支持跨区

目前设备可以通过如下三种方式来得到DPS的认证:

  • Symmetric Key认证
  • X.509证书认证
  • TPM认证。

Tips
DPS有一个非常重要的特性,那就是所有的DPS服务都是公用同一个endpoint的,所有的DPS服务都有一个Global device endpointservice endpoint, 所有的客户端都可以通过Global Service endpoint进行连接,而无需担心,删除了某个dps之后,重建会影响已经生成并预置的设备, 例如中国区的global device endpoint是:global.azure-devices-provisioning.cn

每一个DPS服务都需要连接到至少一个Azure IoT Hub上,DPS支持多个Azure IoT Hub, 用户可以通过分配规则来让设备注册到不同的Hub上。

Azure IoT Hub的分配规则:

  • Evenly Weighted Distributtion: 这是默认设置,如果DPS连接了多个Azure IoT Hu, 设备会平等的分配到几个hub上。
  • Lowest Latency: 使用背后的traffic manager来根据延迟分配IoT Hub
  • 静态分配:相当于设备会被静态的绑定到某一个IoT hub上。
  • 自定义分配: 关于这种方式,我们之后会使用一个例子来说明。

设备登记

设备登记是指存储在DPS服务的设备将来向IoT Hub注册基本信息,主要包括这些信息:

  • 设备认证的机制
  • 可选的初始化配置数据。
  • 期望注册的IoT Hub
  • 期望注册的设备id

目前支持两种方式的登记,一种是分组登记,推荐用于大量的设备登记,一种是单个设备登记,推荐用于设备只能通过SAS + TPM认证的方式,或者用于测试目的。

术语

ID Scope

ID Scope是当DPS创建的时候赋予给DPS的唯一标识,主要用于今后的各种操作用于指代DPS服务。

Registration

注册是设备通过DPSIoT Hub完成初始化的过程。

Registration ID Device Id

按字面意思理解就可以了。