2013-06-05 36 views
0

我們有一個要求,我們需要允許潛在許多用戶向Azure隊列服務添加一條郵件。使用共享訪問簽名,我們可以允許用戶在有限的時間內將消息添加到隊列中。但是,我們生成的每個SAS令牌最多可以限制爲1條消息嗎? 或者在SAS令牌壽命期間,潛在的惡意用戶可以將無限數量的消息插入隊列嗎?使用共享訪問簽名將最多一條添加郵件添加到Azure隊列服務

回答

1

但是,是否也可以限制爲每條SAS最多1條消息我們生成的令牌?

不幸的不是。令牌在發佈的時間段內有效,並且發送的消息的唯一限制是存儲隊列限制。

或者在SAS令牌壽命期間,潛在惡意用戶可以將無限數量的 消息插入隊列嗎?

是的。這是一個有效的場景。

從今天起,如果您希望對Queue(誰發送什麼/什麼時候/多少次)有這種粒度控制,您必須自己關閉流量。

UPDATE

對於表是不同的 - 你可以限制SAS令牌特定PartitionKey特別RowKey,從而有效地使SAS僅能夠恰好與一個錶行的工作!

查看docs。有參數spk(start Part.Key),srk(Start RowKey),epk(End Part.Key),erk(End RowKey)。

使用表和表SAS可以限制單個用戶可以發送的數據!但限制數據量或請求數量的唯一方法就是自己對其進行門控,或者對SAS的生命週期做出艱難的決定。

+0

感謝您的回覆!我擔心是這樣。因此,如果您希望允許應用程序或JS客戶端將消息添加到隊列(或在Azure表存儲中插入行),那麼這種情況會使SAS對隊列無用。我會認爲,爲每個SAS令牌的最大事務合併一個參數並不難。 –