将Azure IoT Edge用作透明网关时,下游设备是否可以使用共享访问策略密钥使用SAS令牌进行身份验证? (设备,iothubowner等?)。 我们已经能够使用由设备主键签名的SAS令牌成功连接,但是尝试使用“共享访问策略”键进行连接似乎无效。

注意:设备正在使用MQTT

#1楼 票数:0

是的,如果该设备不是IoTHub中边缘设备的子设备,则此方法应该起作用。 查看这些链接以了解有关如何将设备添加为边缘设备的子设备https://aka.ms/exofdocshttps://aka.ms/iot-edge-offline的更多信息

这是因为,如果叶子设备是子设备,则EdgeHub将尝试在本地对其进行身份验证,为此,它仅使用设备的密钥。

如果叶子设备不是边缘设备的子设备,则您应该能够使用设备/ iothub范围密钥连接到EdgeHub,因为EdgeHub随后将使用IoTHub对设备进行身份验证。 请注意,连接字符串的格式应为– HostName = .azure-devices.net; DeviceId =; SharedAccessKeyName =; SharedAccessKey =; GatewayHostName =

#2楼 票数:0 已采纳

我认为该脚本(这是一个eventhub脚本)无法为IoT中心创建正确的SAS令牌。 最简单的方法是从Azure Cloud CLI进行操作(在azure门户中,单击顶部导航栏中的“> _”按钮。然后,您可以运行以下命令:

az iot hub generate-sas-token -n [您的iothub名称] --policy设备--key-type primary --duration [您希望令牌有效的持续时间(以秒为单位)]

尝试使用该SAS令牌。 我今晚使用python paho.mqtt客户端对此进行了测试,并且工作正常。 它连接到IoT Edge,并成功将消息发送到模块和IoT中心。

  ask by Rishabh Saha translate from so

未解决问题?本站智能推荐:

1回复

如何使用AzurePythonSDK将下游设备连接到启用了Azure边缘的网关

我正在尝试创建一个三层架构,其中包含一个蓝色的IoT中心,Edge Enable GateWay和一个下游设备。 我已经成功创建了IoT中心和启用边缘的网关,并且能够使用自定义路由将数据发送到Azure IoT中心。 但是,当我尝试使用连接字符串通过网关将下游设备连接到IoT中心时,无法连接
1回复

带有下游设备的IoTEdge网关

我创建了一个在Docker中运行的Azure IoT边缘网关,其中的自定义模块只是一个传递(接收消息并将其发送到上游)。 我创建了一个简单的.net控制台应用程序,以将消息发送到网关,以便可以对其进行评估。 这是控制台应用程序中的代码。 看起来当调用SendEventAsync方法时
1回复

即使将Edge用作网关,叶子/下游设备也可以直接连接到iot-hub吗?

我正在尝试将物联网边缘设备设置为边缘网关。 我们不希望叶子/传感器/下游设备直接连接到互联网/云,因此,我希望物联网边缘网关(顾名思义)能够桥接下游设备与云/物联网之间的连接。毂。 但是,我意识到在任何设备级别,iot-hub / edge的连接字符串都非常简单 iothub与网关hos
2回复

在透明网关上运行的IoTEdge无法处理从叶设备下游设备发送消息

我已经按照所有说明设置了“下游设备”,以通过透明网关中运行的IoT Edge发送消息。 我相信我的路由规则是正确的,但是我的功能模块没有通过消息流接收任何消息。 这些是我遵循的说明: https : //docs.microsoft.com/zh-cn/azure/iot-edge/how
1回复

AzureIOT边缘设备模块之间是否可以进行动态路由?

定义 Azure IOTEdge 设备部署清单时,必须为模块之间的消息定义路由, 我正在动态配置从一个模块发送的消息 下面的文档指出: “接收器属性中没有通配符选项。” 在这种情况下,有没有办法在运行时动态生成路由,因为我希望将不同的消息类型发送到不同的输入? 谢谢。
1回复

AzureIoT-Hub设备孪生与Azure数字孪生使用DTDL:它们是补充还是替代?如何?

Azure IoT-Hub 的两个方面之间存在一些混淆。 我在这里看到,与 Azure IoT-Hub 设备孪生相比,Azure 数字孪生(带有 DTDL)简化了设备状态管理(报告的、所需的属性)。 但是,我在这里看到它们似乎是独立但可链接的实体。 所以问题是:Azure 数字孪生(和 DTDL)
1回复

代理AzureIoT中心上的其他设备

在我们的方案中,我们有一堆与网关本地通信的设备。 网关负责汇总来自设备的事件并将其发送到云。 它还应从云中接收设备配置更改,并将其传输到特定设备。 根据我的阅读,我认为这实际上是典型的IoT中心场景。 我们非常想使用IoT中心提供的设备管理,消息传递甚至双胞胎服务。 但是,设备的通
1回复

从1000个设备中获取connectionState的最佳方法-AzureIoTHub

从1000个设备中获取connectionState最佳方法。 目前没有那么多设备,但需要一个有效的解决方案。 根据我的理解,目前我可以使用获取connectionState IotHub Queries(select * from devices)或registryManager.