【问题标题】:IoT .Net SDK: Is there a way to set the SAS Token Life?IoT .Net SDK:有没有办法设置 SAS 令牌寿命?
【发布时间】:2021-03-12 07:45:05
【问题描述】:

使用 .Net SDK for IoT,有没有办法设置 OPTION_SAS_TOKEN_LIFETIME (https://github.com/Azure/azure-iot-sdk-c/blob/master/iothub_client/inc/iothub_client_options.h#L36)?

我知道我可以使用以下方法生成令牌并拥有进程:

            var sasBuilder = new SharedAccessSignatureBuilder();
            sasBuilder.Key = "jzaOR************F2uT1c=";
            sasBuilder.Target = "k****y.azure-devices.net" + "/devices/" + "dotNet";
            sasBuilder.TimeToLive = TimeSpan.FromMinutes(120);

            var auth = new DeviceAuthenticationWithToken("dotNet", sasBuilder.ToSignature());
            deviceClient = DeviceClient.Create("k****y.azure-devices.net", auth, TransportType.Mqtt);

但这会假设我拥有 SAS 令牌到期。

我也看到可以在C SDK中设置:(https://github.com/Azure/azure-iot-sdk-c/issues/1182)

【问题讨论】:

  • 澄清一下,在您的场景中,您的应用程序不会生成令牌,而只是在 de DeviceClient 中使用它,而您正在寻找一种方法来告诉 DeviceClient 令牌的生命周期是什么?跨度>
  • 是的,使用原生 Azure IoT “DeviceClient”,它在幕后解决 SAS 令牌更新,我想设置更新时间。默认是 1 小时,我想改成 24 小时。

标签: azure-iot-hub azure-iot-sdk


【解决方案1】:

查看github中的相关线程:https://github.com/Azure/azure-iot-sdk-csharp/issues/1818

"默认情况下,如果您使用连接字符串初始化设备客户端,它将生成有效期为一小时的sas令牌。要覆盖此行为,您可以实现抽象类DeviceAuthenticationWithTokenRefresh并将其传递给设备客户端Create 初始化方法。”

谢谢。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2021-11-08
    • 2011-07-05
    • 1970-01-01
    • 1970-01-01
    • 2010-11-19
    • 1970-01-01
    • 1970-01-01
    • 2021-04-24
    相关资源
    最近更新 更多