This post was originally published here.
Lately, I tried to connect to a Service Bus queue with limited permissions (Listen only). I encountered an issue that I want to share with you, so it can save you some time!
When you manage a Service Bus namespace, it’s important to think about security. The recommended way to deal with it, is by leveraging its Shared Access Signature (SAS) authentication and authorization mechanism. You are able to configure SAS policies on your complete ServiceBus namespace or on individual queues and topics. Use what best meets your expectations!
On the ‘coditblog‘ queue, I created a ReadOnly shared access policy that only contains the Listen claim. This policy was intended to be used by a Logic App that only needs to read messages from the queue.
After creating the policy, I copied the primary connection string.
Then I created a Logic App from scratch, by adding the ServiceBus trigger ‘When a message is received in a queue (auto-complete)‘. A connection was created by providing a connection name and the copied connection string.
When trying to select the queue name, I got the following exception:
“Could not retrieve values. ConnectionString should not include EntityPath.”
I double checked my connection string several times and tried multiple variations, but without any success. After some investigation, it turned out that the connector requires the Manage claim to navigate through the list of available queues. A misleading exception message…
Luckily we are not blocked by this! Just choose ‘Enter custom value‘, type the queue name and you’re good to go!
The Logic Apps starts successfully when a message arrives on the queue!
Hope this can save you some troubleshooting time!