[英]Minimum Permissions for Creating and Deleting Subscriptions to an Azure Service Bus Topic?
我正在創建一個應用程序,該應用程序需要在azure服務總線中創建和刪除對已創建主題的訂閱。
我的共享訪問令牌是否需要該主題的管理權限才能創建和刪除訂閱? 我已經進行了一些初步的谷歌搜索,但我找不到的文章都沒有顯示這三個角色(管理,發送,監聽)與訂閱實體的相關性。
謝謝!
更新我已經直接在該主題上創建了共享訪問策略,然后編寫了以下代碼以訪問該主題,創建訂閱,然后通過IDisposable接口取消/處置它們:
public class SubscriptionHandler : IDisposable
{
protected NamespaceManager SubManager { get; set; }
protected SubscriptionDescription SubDetails { get; set; }
public SubscriptionClient Client { get; }
public SubscriptionHandler(AuthDetails details)
{
try
{
var connectionString = ConfigurationManager.AppSettings["Microsoft.ServiceBus.ConnectionString"];
SubManager = NamespaceManager.CreateFromConnectionString(connectionString);
SubDetails = new SubscriptionDescription("topic", $"record{details.ID}.Other{details.OtherID}");
if (!SubManager.SubscriptionExists(SubDetails.TopicPath, SubDetails.Name))
{ //setting subscription to receive all bookings that are for the given businessID
SubManager.CreateSubscription(SubDetails, new SqlFilter($"ID = {details.ID}"));
}
Client = SubscriptionClient.CreateFromConnectionString(connectionString, SubDetails.TopicPath, SubDetails.Name);
}catch (Exception ex)
{
throw;
}
}
public void Dispose()
{
if(Client != null)
{
Client.Close(); // telling subscription we are no longer going to recieve messages
}
if (SubManager != null && SubManager.SubscriptionExists(SubDetails.TopicPath, SubDetails.Name))
{
SubManager.DeleteSubscription(SubDetails.TopicPath, SubDetails.Name);
}
}
但是,我仍然收到未經授權的異常
SubManager.CreateSubscription(SubDetails,new SqlFilter($“ ID = {details.ID}”))); 呼叫。 我從SharedAccessPolicy連接字符串中復制了連接字符串,然后刪除了EntityPath名稱值對。...我在做什么錯?
我的共享訪問令牌是否需要該主題的管理權限才能創建和刪除訂閱?
正如有關服務總線操作所需權限的正式文檔所述,“ Create a subscription
和“ Delete subscription
操作需要對該主題具有“ 管理”權限。
沒有“管理”權限,當您處理“創建/刪除”訂閱操作時,將得到如下所示的401響應:
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.