Change to Azure Service Bus Portal: Default Authentication Mechanism for Service Bus Namespaces now SAS
What are we changing
A change has been made to the user experience in the Azure portal for Service Bus namespace creation. When creating a Service Bus namespace in the Azure portal only SAS authentication will be enabled by default. The accompanying ACS namespace will no longer be created and paired to the Service Bus namespace.
Why did we change it
The vast majority of our customers only use ACS for the access key functionality, not for identity federation. SAS provides better capabilities and higher scale for these use cases so we have decided to make it our default in the portal experience. This simplifies our customer experience for the majority of use cases.
How does this impact customers and how can you use ACS
Current namespaces will not be affected in any way. Customers who were dependent on ACS features such as claims and federation will also not be affected if they use automation to create their namespaces; namely PowerShell, the Azure CLI and the REST API.
In order to create a new namespace in PowerShell use the cmdlet New-AzureSBNamespace
New-AzureSBNamespace -Name 'MyNamespace' -Location 'Central US'
This will create the Service Bus namespace and a paired ACS namespace. The ACS connection string will appear in the Azure portal.
In the future there will be a new optional parameter to this cmdlet which will allow you to control ACS namespace creation. At first this cmdlet will default to creating ACS namespaces, but further in the future this default will be reversed and ACS namespaces will not be created by default.
In Azure CLI, you will run:
sb namespace create ‘MyNamespace’ ‘Central US’
For the REST API:
By default the ACS companion namespace will be created, unless you specified a x-ms-version header bigger than '2014-05'
As we continue to expand and improve our Azure messaging platform the Service Bus team will continually examine customer usage, dependencies, and impact. Creating namespaces without a paired ACS namespace is faster and creates one less dependency for our customers. This change streamlines the user experience for the majority of our customers today.
Are we moving away from ACS?
No! ACS is still fully supported in Service Bus and will be for the foreseeable future. As Azure Active Directory (AAD) expands to support more service federation identity scenarios we will increasingly align with the AAD service offering.
Comments
Anonymous
September 29, 2014
I think this is a very bad practise to change the behaviour of the system. When I did the set up of service bus for the first time, everything was fine. But when I try to do it again I had troubles because of this changes. And you know, it wasn't easy to fine this post to solve issuesAnonymous
October 04, 2014
how does this change affect the relays ?Anonymous
October 07, 2014
The comment has been removedAnonymous
October 08, 2014
Sorry to hear about your experience here. Relay requires ACS, so you will need to create namespaces via PowerShell or the REST API in order to use Relay in them. We'll work on getting those documents updated.Anonymous
October 22, 2014
I too found this change the hard way. I tried to create a namespace on the portal and noticed the ACS bits were missing. I tried PowerShell and got it working, but it was days later before I discovered the SAS info online. Now I'm trying to work my way through switching over to SAS (it looks like we are being ACS throttled), but we use multiple namespaces that should share keys. This was easy to accommodate under ACS, but it looks like the portal will only generate new keys, not allow you to give it a key. I believe I can do so programmatically, but the documentation is a bit thin. I have gotten SAS working with 1 namespace and the speed difference is apparent. We spin up a bunch of subscriptions to queues on start up and the time in the debug instance goes from 2-4 seconds down to about 1 second.Anonymous
October 31, 2014
I'm trying to create new namespace by using the powershell commend in this article, but after typing in the command, it is asking parameter value for NamespaceType. I've tried every possible NamespaceType I can think of, but can't get through this. I'm also not able to find any documentation regarding this online. Any suggestion or reference?Anonymous
November 02, 2014
Same issue as Aki, looks like commands updated with extra parameters but the documentation hasn't been.Anonymous
November 04, 2014
I'm running into the same issue. The New-AzureSBNamespace is asking for a new parameter, NamespaceType, which isn't documented (yet?). Have you guys found what to use for this already?Anonymous
November 04, 2014
I found out this is indeed a new thingy in the API. The post over here describes it and how to solve it: azure.microsoft.com/.../azure-service-bus-namespacetype-default-value-changeAnonymous
November 12, 2014
wow we just found this out the hard way also after we had to re-create a service bus namespace due to it failing for no known reason. This stuff is becoming very undependable for our up-time needs, and we are beginning to regret depending on it.Anonymous
November 18, 2014
We downloaded the Azure Powershell and attempted to set this up – we get this error message: "New-AzureSBNamespace : Cannot convert 'System.String' to the type 'System.Nullable 1 [System.Boolean]' required by parameter 'CreateACSNamespace'. " Documentation from MS Azure tends to be pretty light on this topic were wondering if you had any experience with this issue or any suggestions?Anonymous
November 25, 2014
If Relay requires ACS and Relay is an important part of the Azure Service Bus, how can you just change the default behavior to use SAS instead of ACS, without also implementing SAS in Relays? MortenAnonymous
December 01, 2014
I have found a simple solution. Instead of using : var sharedSecretServiceBusCredential = new TransportClientEndpointBehavior(); sharedSecretServiceBusCredential.TokenProvider = TokenProvider.CreateSharedSecretTokenProvider(issuerName, issuerSecret); Use: var sharedSecretServiceBusCredential = new TransportClientEndpointBehavior(); sharedSecretServiceBusCredential.TokenProvider = TokenProvider.CreateSharedAccessSignatureTokenProvider(policyName, policyKey); You can find policyName & policyKey values in "Configuration" tab -> "Shared access key generator"Anonymous
December 10, 2014
Thanks a ton Shirshank Deepankar, your suggestion made my day.Was trying to get it working since morning.Anonymous
January 01, 2015
Its sad the way Microsoft is going. you are turning off developers that want to develop on your platform because you are becoming consistently inconsistent. Every time I need to do something simple I go Azure website then come to realize things have change, now I have to figure out how to work with the new thing. I have been a Microsoft Developer since the Window days. with all the goings am thinking of switching to open source and javascript.Anonymous
January 05, 2015
Hi, I am also facing same issue, my old ACS is not working and trying to create new one, not able to see the option for create ACS and Relay. My App is faling due to this reason.Anonymous
January 07, 2015
Just use the steps as provided by the "Shirshank Deepankar " to get resolve the Issue.Anonymous
February 22, 2015
But you can only create up to 12 Shared Access Policies... Does anyone know if you can enable ACS on an existing namespace?Anonymous
March 10, 2015
Hi, Will old SB created prior to this change using ACS still work?Anonymous
March 15, 2015
The comment has been removedAnonymous
June 07, 2015
The comment has been removedAnonymous
June 11, 2015
The comment has been removedAnonymous
June 29, 2015
Hi Team, I am trying to connect Azure Service Bus to my iPaaS Platform which is Dell Boomi. I am using a JMS Server Type as 'Generic JNDI'. I wanted to understand how to get the details which I need to connect: Details I need to find from the Azure side are - Connection Factory JNDI Lookup Initial Context Factory Provider URL JMS Properties: Name/Value if any My research is based on the below link which says JMS connector should work with similar config as Apache. Link Below: qpid.apache.org/.../QpidJNDI.htmlAnonymous
November 17, 2015
Maybe we should be consistent then in applications like BizTalk where the builtin port type configuration for SB-Messaging REQUIRES ACS! This is still the case in the latest version.Anonymous
November 29, 2015
Dhawal Thaker (8 Jun 2015) is telling us that the New-AzureSBNamespace cmdlet does not have a -CreateACSNamespace any more. Does it mean that the work around to use ACS for the Service Bus is not an option today (30 Nov 2015) ? I know that SAS has the best practice for quite some time, but I would like to get an authoritative answer possibly from the Azure support team that it is now the only option. Thanks.Anonymous
February 15, 2016
The comment has been removed