我们有一个要求,我们需要允许潜在的许多用户将一条消息添加到 Azure 队列服务。使用共享访问签名,我们可以允许用户在有限的时间内将消息添加到队列中。但是是否也可以将我们生成的每个 SAS 令牌限制为最多 1 条消息?或者潜在的恶意用户能否在 SAS 令牌生命周期内将无限数量的消息插入队列?
问问题
137 次
1 回答
1
但是是否也可以将我们生成的每个 SAS 令牌限制为最多 1 条消息?
不幸的是没有。令牌在发出的时间段内有效,发送消息的唯一限制是存储队列限制。
或者潜在的恶意用户能否在 SAS 令牌生命周期内将无限数量的消息插入队列?
是的。这是一个有效的场景。
到今天为止,如果您想对队列(谁发送什么/何时/多少)进行这种精细控制,您必须自己控制流量。
更新
对于 Table 它是不同的 - 您可以将 SAS 令牌限制为特定的PartitionKey
和特定RowKey
的,从而有效地使 SAS 只能处理一个表格行!
查看文档。有参数spk
(start Part.Key)、srk
(Start RowKey)、epk
(End Part.Key)、erk
(End RowKey)。
使用 Table 和 Table SAS,您可以限制单个用户可以发送的数据!但是,限制数据量或请求数量的唯一方法是自己进行门控,或者对 SAS 生命周期做出艰难的决定。
于 2013-06-05T09:24:43.347 回答