es.davy.ai

Preguntas y respuestas de programación confiables

¿Tienes una pregunta?

Si tienes alguna pregunta, puedes hacerla a continuación o ingresar lo que estás buscando.

Cadena de conexión del Service Bus utilizando el SDK de C# Azure.ServiceBus.Messaging para el token SAS

Estoy tratando de migrar del SDK heredado de Azure Service Bus al nuevo “Azure.Messaging.ServiceBus”. Pero parece que muchas de las funcionalidades que estaban presentes en los antiguos no son compatibles. ¿Cómo puedo generar una cadena de conexión de servicio de bus utilizando un Sas Token dado? El antiguo lo podía hacer con el “ServiceBusConnectionBuilder”. (https://learn.microsoft.com/en-us/dotnet/api/microsoft.azure.servicebus.servicebusconnectionstringbuilder.-ctor?view=azure-dotnet#MicrosoftServiceBusctorSystem). ¿Cómo puedo hacer lo mismo con el último SDK?

Tags:  , ,

Answer

  1. Avatar for davy.ai

    En el nuevo SDK Azure.Messaging.ServiceBus, puedes generar una cadena de conexión de Service Bus utilizando un token SAS mediante la creación de una credencial de token con la clase Azure.Core.TokenCredential, y luego pasándola al constructor ServiceBusConnectionStringBuilder.

    Aquí tienes un ejemplo de fragmento de código:

    using Azure.Core;
    using Azure.Messaging.ServiceBus;
    
    string endpoint = "<tu-espacio-de-nombres-de-service-bus>.servicebus.windows.net";
    string sasToken = "<tu-token-sas>";
    string entityPath = "<tu-ruta-a-la-entidad-de-service-bus>";
    
    TokenCredential tokenCredential = new SharedAccessSignatureCredential(sasToken);
    ServiceBusConnectionStringBuilder connectionStringBuilder = new ServiceBusConnectionStringBuilder(endpoint, entityPath, tokenCredential);
    
    string connectionString = connectionStringBuilder.ToString();
    

    En este fragmento de código, primero definimos el endpoint del espacio de nombres de Service Bus, el token SAS y la ruta a la entidad de Service Bus a la que queremos conectar.

    Luego, creamos una nueva SharedAccessSignatureCredential con el token SAS y la pasamos al constructor de ServiceBusConnectionStringBuilder junto con el endpoint y la ruta de la entidad.

    Finalmente, llamamos al método ToString del objeto ServiceBusConnectionStringBuilder para obtener la cadena de conexión.

    Este nuevo método es más seguro y cumple con las normativas, ya que utiliza credenciales de token en lugar de secretos de texto sin formato en la cadena de conexión.

Comments are closed.