IoT 中心设备资源管理器 SAS 最大 TTL
IoT Hub Device Explorer SAS maximum TTL
在 Device Explorer 中为 IoT Hub 生成 SAS 令牌时最大 TTL 可以设置吗?
我不希望它在最好的情况下过期。
插入 0 没有帮助,当连接丢失时它永远不会重新连接。
查看 Device Explorer 在 GitHub:
中的实现
decimal ttlValue = numericUpDown1.Value;
var sasBuilder = new SharedAccessSignatureBuilder()
{
Key = this.selectedDeviceKey,
Target = String.Format("{0}/devices/{1}", iotHubHostName, WebUtility.UrlEncode(this.selectedDeviceId)),
TimeToLive = TimeSpan.FromDays(Convert.ToDouble(ttlValue))
};
sasRichTextBox.Text = deviceConnectionStringWithSAS(sasBuilder.ToSignature()) + "\r\n";
拥有一个永不过期的 public 令牌原则上不是一个好主意:如果一个实体捕获并设法解密消息到云端的途中,它可以使用令牌来冒充设备并你不会知道它不是设备......这就是为什么一个好的做法是定期更新 SAS 令牌的原因。我们的开源设备 SDK 基于永远不会在线的私钥实现 SAS 令牌的生成和更新。为什么不实现这个而不是硬编码一个永不过期的令牌?
在 Device Explorer 中为 IoT Hub 生成 SAS 令牌时最大 TTL 可以设置吗?
我不希望它在最好的情况下过期。
插入 0 没有帮助,当连接丢失时它永远不会重新连接。
查看 Device Explorer 在 GitHub:
中的实现 decimal ttlValue = numericUpDown1.Value;
var sasBuilder = new SharedAccessSignatureBuilder()
{
Key = this.selectedDeviceKey,
Target = String.Format("{0}/devices/{1}", iotHubHostName, WebUtility.UrlEncode(this.selectedDeviceId)),
TimeToLive = TimeSpan.FromDays(Convert.ToDouble(ttlValue))
};
sasRichTextBox.Text = deviceConnectionStringWithSAS(sasBuilder.ToSignature()) + "\r\n";
拥有一个永不过期的 public 令牌原则上不是一个好主意:如果一个实体捕获并设法解密消息到云端的途中,它可以使用令牌来冒充设备并你不会知道它不是设备......这就是为什么一个好的做法是定期更新 SAS 令牌的原因。我们的开源设备 SDK 基于永远不会在线的私钥实现 SAS 令牌的生成和更新。为什么不实现这个而不是硬编码一个永不过期的令牌?