快速入门:使用适用于 IoT 中心设备预配服务的 C# 设备 SDK 创建和预配模拟的 TPM 设备

这些步骤展示如何使用用于 C# 的 Azure IoT 示例在运行 Windows OS 的开发计算机上模拟运行 TPM 设备。 该示例还使用设备预配服务将模拟设备连接到 IoT 中心。

示例代码使用 Windows TPM 模拟器作为设备的硬件安全模块 (HSM)

如果不熟悉自动预配过程,请查看预配概述。 另外,在继续操作之前,请确保已完成通过 Azure 门户设置 IoT 中心设备预配服务中的步骤。

Azure IoT 设备预配服务支持两类注册:

本文将演示单个注册。

注意

初始的设备孪生状态配置仅在 IoT 中心的标准层中提供。 有关基本和标准 IoT 中心层的详细信息,请参阅如何选择合适的 IoT 中心层

准备开发环境

  1. 确保在计算机上已安装 .NET Core 2.1 SDK 或更高版本

  2. 确保在计算机上安装 git 并将其添加到可供命令窗口访问的环境变量。 请参阅软件自由保护组织提供的 Git 客户端工具,了解要安装的最新版 git 工具,其中包括 Git Bash,这是一个命令行应用,可以用来与本地 Git 存储库交互。

  3. 打开命令提示符或 Git Bash。 克隆用于 C# GitHub 存储库的 Azure IoT 示例:

    git clone https://github.com/Azure-Samples/azure-iot-samples-csharp.git
    

预配模拟的设备

  1. 登录到 Azure 门户。 选择左侧菜单上的“所有资源”按钮,打开设备预配服务 。 在“概览”边栏选项卡中,记下“ID 范围”的值。

    Copy provisioning service Scope ID from the portal blade

  2. 在命令提示符处将目录更改为 TPM 设备预配示例的项目目录。

    cd .\azure-iot-samples-csharp\provisioning\Samples\device\TpmSample
    
  3. 键入以下命令,生成并运行 TPM 设备预配示例。 将 <IDScope> 值替换为预配服务的 ID 范围。

    dotnet run <IDScope>
    

    此命令将在单独的命令提示中启动 TPM 芯片模拟器。 在 Windows 上,你可能会遇到 Windows 安全警报,该警报询问你是否要允许 Simulator.exe 在公共网络上通信。 对于本示例,可以取消该请求。

  4. 原始命令窗口显示设备注册所需的“认可密钥”、“注册 ID”以及建议的“设备 ID”。 记下这些值。 这些值将用于在设备预配服务实例中创建个人注册。

    注意

    请勿混淆包含命令输出的窗口与包含 TPM 模拟器输出的窗口。 可能需要选择原始命令窗口,将其置于前台。

    Command window output

  5. 在 Azure 门户中的“设备预配服务”菜单中,选择“管理注册” 。 选择“个人注册”选项卡,然后选择顶部的“添加个人注册”按钮。

  6. 在“添加注册”面板中,输入以下信息 :

    • 选择“TPM” 作为标识证明机制

    • 使用你之前记下的值输入 TPM 设备的“注册 ID”和“认可密钥” 。

    • 选择与预配服务链接的 IoT 中心。

    • (可选)可以提供以下信息:

      • 输入一个唯一“设备 ID” (可以使用建议的设备 ID,也可以提供自己的设备 ID)。 为设备命名时,请确保避免使用敏感数据。 如果选择不提供此项,则系统将改用注册 ID 来标识设备。
      • 使用设备所需的初始配置更新“初始设备孪生状态” 。
    • 完成后,按“保存”按钮。

      Enter device enrollment information in the portal blade

    成功注册以后,设备的“注册 ID”会显示在“单个注册”选项卡下的列表中。

  7. 在命令窗口(显示认可密钥注册 ID 和建议的 设备 ID)中按 Enter 以登记模拟设备。 请注意相关消息,这些消息模拟设备启动后连接到设备预配服务以获取 IoT 中心信息的情况。

  8. 验证设备是否已预配。 将模拟设备成功预配到与预配服务链接的 IoT 中心以后,设备 ID 会显示在该中心的“IoT 设备”边栏选项卡上 。

    Device is registered with the IoT hub

    如果从设备的注册项中的默认值更改了“初始设备孪生状态”,则它会从中心拉取所需的孪生状态,并执行相应的操作。 有关详细信息,请参阅了解并在 IoT 中心内使用设备孪生

清理资源

如果打算继续使用和探索设备客户端示例,请勿清理在本快速入门中创建的资源。 如果不打算继续学习,请按以下步骤删除本快速入门中创建的所有资源。

  1. 关闭计算机上的设备客户端示例输出窗口。
  2. 关闭计算机上的 TPM 模拟器窗口。
  3. 在 Azure 门户的左侧菜单中选择“所有资源”,然后选择设备预配服务 。 在“概述”边栏选项卡顶部,按窗格顶部的“删除” 。
  4. 在 Azure 门户的左侧菜单中选择“所有资源”,然后选择 IoT 中心 。 在“概述”边栏选项卡顶部,按窗格顶部的“删除” 。

后续步骤

在本快速入门中,你已在计算机上创建 TPM 模拟设备,并已使用 IoT 中心设备预配服务将其预配到 IoT 中心。 若要了解如何以编程方式注册 TPM 设备,请继续阅读快速入门中关于 TPM 设备的编程注册内容。