Google Cloud IoT核心设备注册 - 多个设备可以使用相同的公钥/私钥

问题描述 投票:0回答:2

我正在研究一个带有多个传感器设备的内部项目。我不希望用户单独注册每个设备。在某种意义上,我想为注册到注册表的所有设备使用相同的公钥/私钥对,但是能够通过mqtt / http将设备信息传递给pubsub,并使用唯一的设备信息(如name或id)。是否有可能实现这一目标?

我假设我使用相同的密钥。我正在将所有设备注册为一个,但是可以将设备信息作为正在发布的消息的一部分发送。这样做会以任何方式抑制谷歌内置功能的使用,比如API。

对云技术不熟悉,任何想法/建议都会有所帮助。

google-cloud-iot spring-integration-mqtt
2个回答
0
投票

取决于MQTT-broker配置。

通常,基于证书的授权仅用于MQTT-Broker端的授权。因此,您可以使用公钥/私钥对来授权和连接到代理,并使用MQTT ClientID来区分您的设备。

MQTT-Broker还可以配置为使用来自授权公钥/私钥对的身份作为用户名。

use_identity_as_username true

在这种情况下,如果MQTT-Broker还具有基于用户名的ACL配置,例如:

#device info sent from device. %u <- username
pattern readwrite %u/devinfo

您的所有设备都将以相同的用户名发布消息,您应为每个设备设置不同的ClientID,或者在这种情况下使用CleanSession Flag。

这是一个很好的阅读,以了解设备和代理之间的连接如何工作:https://www.hivemq.com/blog/mqtt-essentials-part-3-client-broker-connection-establishment/


0
投票

听起来你真的想要使用新的网关功能(它现在处于测试阶段,但我已经完成了它的使用,并且非常稳定)。

查看关于网关的本教程,了解我们正在谈论的内容:

https://cloud.google.com/community/tutorials/cloud-iot-gateways-rpi

TL; DR版本是它允许单个设备管理许多较小的设备(可能无法自己进行身份验证),但仍然可以在云中表示这些较小的设备。

所以基本上,你有一个更强大的设备(如Raspberry Pi,或台式机,无论如何)在IoT Core中注册为“网关”。然后,当您在云中创建单个设备时,您不指定SSL密钥(控制台将警告您设备无法连接),然后您可以将设备与网关“关联”,并且它'我会为你处理auth片。然后是各个设备而不是呼叫互联网,在本地连接并与网关设备通信。

© www.soinside.com 2019 - 2024. All rights reserved.