从Microsoft文档中,我看到SAS的作用域只能是Azure Service Bus命名空间,队列,主题,而不能是订阅。我有一个用例,其中我希望一个订阅的使用者不能访问其他订阅。如果Azure服务总线当前不支持它,该如何实现?
答案 0 :(得分:0)
我相信这是可能的,documentation中也提到了这一点。
generating the signature时,您只需要像这样使用资源URI进行订阅
https://<yournamespace>.servicebus.windows.net/myTopic/Subscriptions/mySubscription
您可以在文档中检查其他rights required for service bus operations的范围。
这里是.NET Framework Sample供参考。 (谢谢@Roberto!)
答案 1 :(得分:0)
如果您可以选择使用托管标识,则 Azure RBAC 确实支持细粒度访问。请查看 here 中的文档。示例:
az role assignment create \
--role $service_bus_role \
--assignee $assignee_id \
--scope /subscriptions/$subscription_id/resourceGroups/$resource_group/providers/Microsoft.ServiceBus/namespaces/$service_bus_namespace/topics/$service_bus_topic/subscriptions/$service_bus_subscription