而不是SDK直接调用azure iot provisioning rest api来注册设备然后注册它。
注册休息api的工作正常,但注册调用失败,错误
""需要授权,使用提供的密钥重新发送请求""
我使用fiddler拦截了sdk如何进行注册调用,并注意到sdk首先获得401以上错误,然后重新发出另一个成功的请求。
目前我正在根据azure dps的共享密钥名和主键生成sas令牌。
我有一个Windows应用程序,它会调用此webapi注册+在一次调用中注册设备。我将registrationid,tpmendoresmentkey,storagekey传递给api。这个api内部对azure rest api进行2次httpclient调用:
请帮助解决有助于理解的任何想法或指示。
答案 0 :(得分:1)
当我尝试注册TPM设备时,我可以重现此行为。在投入处理TPM设备寄存器的源代码之后,在我的选项中,这是一个设计特征。您可以参考下面的链接,查看SDK检查响应并通过响应返回的密钥生成SAS令牌:
我建议您使用Azuire IoT Device Provision Service SDK,因为它是开发人员真正的修道院。如果您只能使用REST,则可以参考上面链接中的代码生成SAS令牌并使用该令牌发送注册设备重试请求。