Autenticação e autorização do Service Bus

Existem duas formas de autenticar e autorizar o acesso aos recursos do Azure Service Bus:

  • Microsoft Entra ID
  • Assinaturas de Acesso Partilhado (SAS).

Este artigo fornece detalhes sobre como usar esses dois tipos de mecanismos de segurança.

Microsoft Entra ID

A integração do Microsoft Entra com o Service Bus fornece controle de acesso baseado em função (RBAC) para recursos do Service Bus. Você pode usar o RBAC do Azure para conceder permissões a uma entidade de segurança, que pode ser um usuário, um grupo, uma entidade de serviço de aplicativo ou uma identidade gerenciada. O Microsoft Entra autentica a entidade de segurança e retorna um token OAuth 2.0. Esse token pode ser usado para autorizar uma solicitação para acessar um recurso do Service Bus (fila, tópico e assim por diante).

Para obter mais informações sobre como autenticar com o Microsoft Entra ID, consulte os seguintes artigos:

Nota

A API REST do Service Bus suporta autenticação OAuth com ID do Microsoft Entra.

Importante

Autorizar usuários ou aplicativos usando o token OAuth 2.0 retornado pelo Microsoft Entra ID oferece segurança superior e facilidade de uso em relação às assinaturas de acesso compartilhado (SAS). Com o Microsoft Entra ID, não há necessidade de armazenar tokens em seu código e arriscar possíveis vulnerabilidades de segurança. Recomendamos que você use a ID do Microsoft Entra com seus aplicativos do Barramento de Serviço do Azure quando possível.

Você pode desabilitar a autenticação de chave local ou SAS para um namespace do Service Bus e permitir apenas a autenticação do Microsoft Entra. Para obter instruções passo a passo, consulte Desativar a autenticação local.

Assinatura de acesso partilhado

A autenticação SAS permite conceder a um usuário acesso aos recursos do Service Bus, com direitos específicos. A autenticação SAS no Service Bus envolve a configuração de uma chave criptográfica com direitos associados num recurso do Service Bus. Os clientes podem então obter acesso a esse recurso apresentando um token SAS, que consiste no URI do recurso sendo acessado e uma expiração assinada com a chave configurada.

Você pode configurar chaves para SAS em um namespace do Service Bus. A chave se aplica a todas as entidades de mensagens dentro desse namespace. Você também pode configurar chaves em filas e tópicos do Service Bus. Para usar o SAS, você pode configurar uma regra de autorização de acesso compartilhado em um namespace, fila ou tópico. Esta regra consiste nos seguintes elementos:

  • KeyName: identifica a regra.
  • PrimaryKey: uma chave criptográfica usada para assinar/validar tokens SAS.
  • SecondaryKey: uma chave criptográfica usada para assinar/validar tokens SAS.
  • Direitos: representa a coleção de direitos de Ouvir, Enviar ou Gerenciar concedidos.

As regras de autorização configuradas no nível do namespace podem conceder acesso a todas as entidades em um namespace para clientes com tokens assinados usando a chave correspondente. Você pode configurar até 12 dessas regras de autorização em um namespace, fila ou tópico do Service Bus. Por padrão, uma regra de autorização de acesso compartilhado com todos os direitos é configurada para cada namespace quando é provisionada pela primeira vez.

Para acessar uma entidade, o cliente requer um token SAS gerado usando uma regra de autorização de acesso compartilhado específica. O token SAS é gerado usando o HMAC-SHA256 de uma cadeia de caracteres de recurso que consiste no URI do recurso ao qual o acesso é reivindicado e uma expiração com uma chave criptográfica associada à regra de autorização.

O suporte à autenticação SAS para Service Bus está incluído no SDK do Azure .NET versões 2.0 e posteriores. O SAS inclui suporte para uma regra de autorização de acesso compartilhado. Todas as APIs que aceitam uma cadeia de conexão como parâmetro incluem suporte para cadeias de conexão SAS.

Próximos passos

Para obter mais informações sobre como autenticar com o Microsoft Entra ID, consulte os seguintes artigos:

Para obter mais informações sobre como autenticar com SAS, consulte os seguintes artigos: