0

自 5 月 20 日起,Azure IOT Hub 突然出现连接问题。

我们有两个 Multitech Coundit 网关,它们已经完美运行了大约。1 年,但突然无法再连接到 Azure IOT Hub。SSL 证书仍然有效。

我试图为那个网关生成新密钥,但它也不起作用。

由于这两个网关在硬件方面非常有限,我们不能使用专用的节点红色 Aure 连接器,而必须使用标准的 MQTT 连接。

Azure 日志提供以下输出:

ResourceType: IOTHUBS
OperationName: deviceConnect
ResultType: 401003
ResultDescription: IotHubUnauthorized
Level: Error
SourceSystem: Azure
authType: null
protocol: Mqtt
statusCode: 401

任何帮助表示赞赏。

4

2 回答 2

1

这是在黑暗中拍摄的,但如果设备时间不同步超过 2 秒,集线器将拒绝消息(不幸的是,我现在找不到参考)。

示例问题连接未接受:0x5:未授权

于 2020-12-02T03:27:20.877 回答
0

错误401003 IoTHubUnauthorized可能有不同的原因

原因一

对于 MQTT,一些 SDK 依赖 IoT Hub 在 SAS 令牌过期时发出断开连接以知道何时刷新它。所以,

  1. SAS 令牌过期
  2. IoT Hub 通知到期,并断开设备与 401003 IoTHubUnauthorized
  3. 设备完成断开连接 404104 DeviceConnectionClosedRemotely
  4. IoT SDK 生成新的 SAS 令牌
  5. 设备与 IoT 中心成功重新连接

解决方案-1 如果使用 IoT SDK 使用设备连接字符串进行连接,则无需执行任何操作。IoT SDK 重新生成新令牌以在 SAS 令牌到期时重新连接。

如果需要考虑错误量,请切换到 C SDK,它会在 SAS 令牌到期前更新。此外,对于 AMQP,SAS 令牌可以在不断开连接的情况下刷新。

原因 2 IoT 中心无法对身份验证标头、规则或密钥进行身份验证。

解决方案 2 通常,显示的错误消息应说明如何修复错误。如果由于某种原因您无权访问错误消息详细信息,请确保:

您使用的 SAS 或其他安全令牌未过期。对于您使用的协议,授权凭证格式正确。要了解更多信息,请参阅IoT 中心访问控制。使用的授权规则对请求的操作具有权限。

详情请参阅401003 IoTHubUnauthorized。您还可以使用 Azure IoT 中心检查、诊断和解决断开连接

于 2020-06-01T11:10:41.160 回答