【问题标题】:How to send events to a device in Azure IoT Hub using shared key for authentication如何使用共享密钥将事件发送到 Azure IoT Hub 中的设备进行身份验证
【发布时间】:2019-06-21 05:42:45
【问题描述】:

有没有办法使用共享密钥将数据发送到 Azure IoT Hub 中的设备,而无需先生成 SAS 令牌?我尝试这样做的原因是因为我想通过 web 挂钩发送事件而不为它编写代码。该设备已连接到我们的系统,我们正在尝试使用我们的 Web 挂钩功能,该功能可以将事件中继到具有预配置标头和格式的 HTTP 端点,但它无法执行代码来获取临时 SAS 令牌。

或者,我可以制作一个永不过期的 SAS 令牌吗?

【问题讨论】:

  • 对于您的情况,我建议使用无服务器集成器到 Azure IoT 中心面向服务的端点,例如 Api 管理服务或 Azure 函数。基本上,向设备发送数据有两种选择,例如 C2D 消息传递 (AMQP) 或在设备上调用直接方法 (Https)。请注意,直接方法需要使用特定的有效负载模式,因此您应该使用推荐的集成器。
  • “或者,我可以制作一个永不过期的 SAS 令牌吗?”我认为您总是需要给出到期日期,但这也可能是未来几年
  • @RomanKiss 我考虑使用 Azure 函数来生成令牌,但如果可能的话我想跳过它。我也在考虑在我们端添加一种特殊类型的网络钩子来专门处理物联网中心。我们希望尽量减少未来客户的设置,因此我们希望避免使用 Azure 功能
  • @silent 我似乎找不到限制。我想知道我是否可以假设 20 年到期会起作用。

标签: azure azure-iot-hub


【解决方案1】:

最终使用 Azure IoT Central + Azure IoT Central Bridge。 IoT Bridge 是一个 Azure 函数,您可以在其中放置一些 JS 代码来将您的消息转换为 IoT Central 可以理解的格式,然后它会处理令牌和最终的设备注册。这不是问题的确切答案,因为 IoT Central 不完全是 IoT 中心(它是它的门户),但事实证明它对于我们的案例来说已经足够好了。此外,我认为 IoT Bridge 的代码库可以与 IoT Hub 一起使用,如果想深入挖掘的话。也许这个解决方案可以为其他人服务。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2012-08-11
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-04-05
    • 2019-01-20
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多