【问题标题】:SAS Token - Azure IoTHubSAS 令牌 - Azure IoTHub
【发布时间】:2018-03-08 10:47:22
【问题描述】:

我使用 Azure IoTHub 从我的设备接收数据。 为了授权这些设备在我的 iothub 上发送数据,我为每个设备生成并指定一个 SAS 令牌。

在我的测试过程中有几次,即使在指定了 1 个月的到期时间之后,我也不得不在第一个 SAS 令牌到期之前再次重新生成一个新的 SAS 令牌。

我想知道 IotHub 接受的最长到期时间是多少? 是否有一些场景会在到期日期之前取消 SAS 令牌?

【问题讨论】:

  • 如何生成 sas 令牌?我使用了 azure cli 命令z iot hub generate-sas-token -d mydevice -n myhub,我得到了 sas 令牌,但是当我将它用于标题授权中的其余调用时,我得到 ErrorCode:IotHubUnauthorizedAccess;Unauthorized 在响应中,你能帮我吗?

标签: azure azure-iot-hub


【解决方案1】:

在 Azure 设备资源管理器中,最大值为 365 天。

令牌似乎无法取消,但您可以将指定设备禁用到mitigates the risks of using tokens with long expiry times。

【讨论】:

  • 使用 SAS 令牌比 X509 证书有什么优势?我需要帮助来理解它。
  • @kudlatiger 只需生成和使用,无需获取证书并将证书指纹或证书颁发机构 (CA) 上传到 Azure IoT Hub。没有功能上的区别。选择哪一个取决于您的情况,例如您的设备是否支持证书?使用两者之一,而不是两者。参考"Control access to IoT Hub".
  • @RitaHan-MSFT 我的设备支持证书,但获取 CA 证书存在成本问题,但我们计划使用 DPS(设备配置服务),似乎必须只使用证书!
【解决方案2】:

您可能没有使用 Microsoft SDK 将您的设备连接到 Azure IoT 中心。

如果您同样乐意在代码中生成 SAS 令牌,那么您可以在此处找到一个 C++ 示例,说明如何为 Azure IoT 中心执行此操作:https://github.com/markrad/Azure-IoT-ESP8266。

查看 .ino 文件以获取有关如何使用它的示例。该代码在该项目的 cpp、c 和 h 文件中实现。

【讨论】:

    【解决方案3】:

    如果您指定的 SAS 令牌从现在开始的 'se' 为一个月,则没有什么会使其不适合。我可能会建议您获取 sas 令牌的“se”值并将其插入到进行 utc 计算的网页中。例如https://www.mbari.org/utc-calculator 是我过去使用过的。

    将数字插入 UTC 秒数旁边的框中,然后点击重新计算。到期时间应在上面列出。

    我提到这一点是为了让你检查你是否正确地生成了你的 se。

    一个更有趣的问题是您认为为什么需要生成新的 SAS 令牌?您是否从遥测请求中收到了一些错误?可能不是您的令牌已过期。此外,您使用什么协议与集线器通信?

    【讨论】:

      猜你喜欢
      • 2017-08-08
      • 1970-01-01
      • 1970-01-01
      • 2020-04-10
      • 2018-08-14
      • 2020-05-30
      • 1970-01-01
      • 1970-01-01
      • 2021-10-02
      相关资源
      最近更新 更多