【问题标题】:Azure IoT Hub MQTT username and password character length limitationAzure IoT Hub MQTT 用户名和密码字符长度限制
【发布时间】:2020-04-25 19:54:33
【问题描述】:

我正在尝试使用 SARA-R410-02B 模块 (NB-IoT) 通过 MQTT 或 HTTPS 将数据导入 Azure IoT-Hub。 Microsofts MQTT guide for IoT-Hub 声明:

  • 对于用户名字段,使用 {iothubhostname}/{device_id}/?api-version=2018-06-30,其中 {iothubhostname} 是 IoT 中心的完整 CName。

    例如,如果您的 IoT 中心的名称是 contoso.azure-devices.net,并且您的设备名称是 MyDevice01,则完整的用户名字段应包含:contoso.azure-devices.net/MyDevice01/?api -version=2018-06-30

  • 对于密码字段,使用 SAS 令牌。 SAS 令牌的格式与 HTTPS 和 AMQP 协议的格式相同:

    SharedAccessSignature sig={signature-string}&se={expiry}&sr={URL-encoded-resourceURI}

这意味着 用户名(和密码)将超过我在 SARA-R410 上的 30 个字符的限制。有什么办法可以解决这个问题吗?在 HTTPS 方面我也有同样的限制。

我发现使用 x.509 证书可以解决密码限制,但用户名保持不变。

【问题讨论】:

    标签: azure https mqtt azure-iot-hub nb-iot


    【解决方案1】:

    如果您的设备能够进行 X.509 身份验证,那么它将解决您的密码问题,但正如您所指出的,它不会解决您的用户身份问题。您可以在不使用 api 参数的情况下尝试它,看看它是否会采用默认值。如果它有效,那会给你一些角色来玩。

    否则,您需要设置一个应用程序来接收遥测数据并将其转发到集线器。例如将所有内容发布到蚊式服务器并让应用程序订阅并转发。不幸的是,增加了更多的管理和故障点。

    【讨论】:

      【解决方案2】:

      我尝试过不使用 HTTP 的 api 参数,但它不起作用。我在覆盖方面遇到了一些问题,所以我还没有尝试过 MQTT,但我猜结果会是一样的吗?

      我从 u-blox 得到了答复。他们说可以通过在 SARA-R410 上使用套接字实现 MQTT 协议来解决这个问题。这似乎是最好的解决方案。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2012-12-22
        • 1970-01-01
        • 1970-01-01
        • 2022-12-07
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多