Raspberry Pi中的Mosquitto代理设置桥与IoT中心SAS令牌

问题描述

因为IoT中心不是代理,所以我想使用Raspberry Pi作为可以与设备进行通信的代理,并且Raspberry Pi将收到的消息发送到IoT中心。 在Raspberry上安装Mosquitto之后,这是我的配置mosquitto文件:

connection iothub-bridge   
log_type all  
address your hub.azure-devices.net:8883  
remote_username your hub.azure-devices.net/your device  
remote_password sas token  
remote_clientid your device  
bridge_cafile /home/pi/baltimore.pem  
try_private false  
cleansession true  
start_type automatic  
bridge_insecure false  
bridge_protocol_version mqttv311  
bridge_tls_version tlsv1.2  
notifications false  
notification_topic events/  
topic  devices/Your device/messages/events/ 

问题是SAS令牌已使用了几个小时,并且将过期,我希望有一个替代SAS令牌的解决方案,并且可以永久使用。

解决方法

很高兴您喜欢我的博客文章:-)。

正如Matthijs所说,在SAS令牌生成中,设备浏览器或类似资源的最长期限为365天,但是使用Azure IoT CLI,您可以走得更长。例如,此命令创建一个10年(315,360,000秒)的

az iot集线器generate-sas-token -n [您的iot集线器] -d [您的设备ID] --du 315360000

正如Matthijs所说,您不能生成永不过期的。我尝试生成一个100年(3,153,600,000秒),它似乎奏效了

我要警告的是,我实际上并没有尝试将上述设备连接到IoT中心。

话虽如此,拥有SAS令牌这么长时间不是一个好的安全实践,但是只要您清楚所涉及的风险,我认为这在技术上是可行的。

相关问答

错误1:Request method ‘DELETE‘ not supported 错误还原:...
错误1:启动docker镜像时报错:Error response from daemon:...
错误1:private field ‘xxx‘ is never assigned 按Alt...
报错如下,通过源不能下载,最后警告pip需升级版本 Requirem...