快速入门:使用适用于 IoT 中心设备预配服务的 C# 设备 SDK 创建和预配模拟的 TPM 设备
这些步骤展示如何使用用于 C# 的 Azure IoT 示例在运行 Windows OS 的开发计算机上模拟运行 TPM 设备。 该示例还使用设备预配服务将模拟设备连接到 IoT 中心。
示例代码使用 Windows TPM 模拟器作为设备的硬件安全模块 (HSM)。
如果不熟悉自动预配过程,请查看预配概述。 另外,在继续操作之前,请确保已完成通过 Azure 门户设置 IoT 中心设备预配服务中的步骤。
Azure IoT 设备预配服务支持两类注册:
本文将演示单个注册。
注意
初始的设备孪生状态配置仅在 IoT 中心的标准层中提供。 有关基本和标准 IoT 中心层的详细信息,请参阅如何选择合适的 IoT 中心层。
准备开发环境
确保在计算机上已安装 .NET Core 2.1 SDK 或更高版本。
确保在计算机上安装
git
并将其添加到可供命令窗口访问的环境变量。 请参阅软件自由保护组织提供的 Git 客户端工具,了解要安装的最新版git
工具,其中包括 Git Bash,这是一个命令行应用,可以用来与本地 Git 存储库交互。打开命令提示符或 Git Bash。 克隆用于 C# GitHub 存储库的 Azure IoT 示例:
git clone https://github.com/Azure-Samples/azure-iot-samples-csharp.git
预配模拟的设备
登录到 Azure 门户。 选择左侧菜单上的“所有资源”按钮,打开设备预配服务 。 在“概览”边栏选项卡中,记下“ID 范围”的值。
在命令提示符处将目录更改为 TPM 设备预配示例的项目目录。
cd .\azure-iot-samples-csharp\provisioning\Samples\device\TpmSample
键入以下命令,生成并运行 TPM 设备预配示例。 将
<IDScope>
值替换为预配服务的 ID 范围。dotnet run <IDScope>
此命令将在单独的命令提示中启动 TPM 芯片模拟器。 在 Windows 上,你可能会遇到 Windows 安全警报,该警报询问你是否要允许 Simulator.exe 在公共网络上通信。 对于本示例,可以取消该请求。
原始命令窗口显示设备注册所需的“认可密钥”、“注册 ID”以及建议的“设备 ID”。 记下这些值。 这些值将用于在设备预配服务实例中创建个人注册。
注意
请勿混淆包含命令输出的窗口与包含 TPM 模拟器输出的窗口。 可能需要选择原始命令窗口,将其置于前台。
在 Azure 门户中的“设备预配服务”菜单中,选择“管理注册” 。 选择“个人注册”选项卡,然后选择顶部的“添加个人注册”按钮。
在“添加注册”面板中,输入以下信息 :
选择“TPM” 作为标识证明机制。
使用你之前记下的值输入 TPM 设备的“注册 ID”和“认可密钥” 。
选择与预配服务链接的 IoT 中心。
(可选)可以提供以下信息:
- 输入一个唯一“设备 ID” (可以使用建议的设备 ID,也可以提供自己的设备 ID)。 为设备命名时,请确保避免使用敏感数据。 如果选择不提供此项,则系统将改用注册 ID 来标识设备。
- 使用设备所需的初始配置更新“初始设备孪生状态” 。
完成后,按“保存”按钮。
成功注册以后,设备的“注册 ID”会显示在“单个注册”选项卡下的列表中。
在命令窗口(显示认可密钥、 注册 ID 和建议的 设备 ID)中按 Enter 以登记模拟设备。 请注意相关消息,这些消息模拟设备启动后连接到设备预配服务以获取 IoT 中心信息的情况。
验证设备是否已预配。 将模拟设备成功预配到与预配服务链接的 IoT 中心以后,设备 ID 会显示在该中心的“IoT 设备”边栏选项卡上 。
如果从设备的注册项中的默认值更改了“初始设备孪生状态”,则它会从中心拉取所需的孪生状态,并执行相应的操作。 有关详细信息,请参阅了解并在 IoT 中心内使用设备孪生。
清理资源
如果打算继续使用和探索设备客户端示例,请勿清理在本快速入门中创建的资源。 如果不打算继续学习,请按以下步骤删除本快速入门中创建的所有资源。
- 关闭计算机上的设备客户端示例输出窗口。
- 关闭计算机上的 TPM 模拟器窗口。
- 在 Azure 门户的左侧菜单中选择“所有资源”,然后选择设备预配服务 。 在“概述”边栏选项卡顶部,按窗格顶部的“删除” 。
- 在 Azure 门户的左侧菜单中选择“所有资源”,然后选择 IoT 中心 。 在“概述”边栏选项卡顶部,按窗格顶部的“删除” 。
后续步骤
在本快速入门中,你已在计算机上创建 TPM 模拟设备,并已使用 IoT 中心设备预配服务将其预配到 IoT 中心。 若要了解如何以编程方式注册 TPM 设备,请继续阅读快速入门中关于 TPM 设备的编程注册内容。