Azure 配置服务示例不适用于节点

标签 azure azure-iot-hub azure-iot-sdk

我按照node.js教程通过Azure DPS(设备配置服务)注册设备@https://learn.microsoft.com/en-us/azure/iot-dps/quick-create-simulated-device-x509-node 。 对于单个设备注册,它成功了,但是当我尝试通过注册组注册设备时,它失败了。 我用过"create_test-cert.js root"生成我的根证书并

create_test-cert.js verification --ca {rootcertificate_cert
.pem} --key {rootcertificate_key.pem} --nonce {verificationKey}

验证。 我也used create_test-cert.js device {leafcertificate} {rootcertificate-name}创 build 备证书。 最后,我使用 register_x509.js 文件将我的设备注册到 Azure。执行此文件时出现以下错误

azure-iot-provisioning-device:X509Registration registrationId: first +0ms
  azure-iot-provisioning-device:PollingStateMachine register called for registrationId "first" +0ms
  azure-iot-provisioning-device:PollingStateMachine completed transition from disconnected to sendingRegistrationRequest +0ms
  azure-iot-provisioning-device-http:Http submitting PUT for first to /0ne00015676/registrations/first/register?api-version=2017-11-15 +0ms
  azure-iot-provisioning-device-http:Http {"registrationId":"first"} +0ms
  azure-iot-provisioning-device-http:Http error executing PUT: UnauthorizedError: Error: {"errorCode":401002,"trackingId":"e6b9c185-64c4-4535-8d23-a7625dd3e011","message":"Unauthorized","timestampUtc":"2018-04-23T12:21:56.1390465Z"} +353ms

错误代码“401002是IotHubUnauthorizedAccess”

谢谢

最佳答案

我已经使用最新版本的SDK进行了测试。有用。以下是我的操作步骤。

更新:

  1. 使用以下命令生成根ca证书文件(testRootCert_cert.pem、testRootCert_fullchain.pem、testRootCert_key.pem将在tools文件夹中生成):

node create_test_cert.js root

  • 证书中添加名为“root”的证书,并上传根ca文件(testRootCert_cert.pem)。

  • 使用此命令生成验证码并创建验证ca文件,上传verification_cert.pem文件,状态“root”将变为“Verified”:

  • node create_test_cert.js verification --ca testRootCert_cert.pem --key testRootCert_key.pem --nonce {verification code}

  • 按照此 guide 创建注册组,将创建一个名为“first”的注册组:
  • node create_enrollment_group.js "" "testRootCert_cert.pem"

  • 通过以下命令生成设备注册到组的证书文件。
  • node create_test_cert.js device device01 testRootCert

  • device01 _cert.pemdevice01 _fullchain.pemdevice01 _key.pem 复制到“\device\samples”文件夹,并修改配置主机id范围注册id(此处为“第一个”命名)、证书文件名 key 文件名。请引用这个document .
  • var provisioningHost = '{your provisioning Host}'; var idScope = '{your id scope}'; var registrationId = 'device01'; var deviceCert = { cert: fs.readFileSync('device01_cert.pem').toString(), key: fs.readFileSync('device01_key.pem').toString() };

  • 最后,运行node register_x509.js来分配设备。该消息将显示为:
  • registration succeeded
    assigned hub={iothub host}
    deviceId=device01
    

    enter image description here

    请注意设备配置服务应链接到您的 IoT 中心。 enter image description here

    关于Azure 配置服务示例不适用于节点,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49981730/

    相关文章:

    python - 在 Azure 中为 Python 函数应用程序运行 "Error calling sync triggers (TooManyRequests)"时遇到 "func azure functionapp publish"错误

    Azure函数根据消息数据将消息路由到队列名称

    python - Microsoft Azure IoT Python SDK 可以成功配置但无法使用相同的凭据进行连接

    azure - 边缘模块可以向edgeHub发送多少条消息?

    c - 使用设备配置服务时出现错误和段错误

    firebase - 使用 Firebase OpenID Connect 提供程序作为 Azure Function App 身份提供程序

    c# - 如何配置**本地**运行的 Azure Function 以使用 Azure B2C 执行身份验证?

    powershell - 图像文件是否因 Azure 中的不同订阅而异

    java - Azure物联网中心: "Signing certificate info did not match chain elements"

    azure - Azure IoT 中心中的路由