Share via


Gerenciando a segurança (Service Broker)

O Agente de Serviços fornece uma estrutura de segurança flexível que ajuda você a proteger seus aplicativos. Este tópico explica as considerações sobre gerenciamento da segurança do Agente de Serviços.

Planejando a segurança

Cada aplicativo tem requisitos de segurança exclusivos. Parte do gerenciamento de segurança é planejar os requisitos cuidadosamente para seu aplicativo. A segurança de transporte, segurança de diálogo e a segurança de infra-estrutura incorporadas à SQL Server funcionam em conjunto para ajudar você a proteger seu aplicativo.

Todos os aplicativos usam a infra-estrutura de segurança incorporada à SQL Server. Cada operação em SQL Server ocorre em um contexto de segurança específico. Na maioria dos casos, você cria os principais de banco de dados SQL Server para o aplicativo. Isso ajuda você a assegurar que cada etapa no aplicativo será executada em um contexto de segurança com apenas os privilégios necessários para essa etapa. Por exemplo, o principal especificado para a ativação interna precisa executar permissões no procedimento armazenado que o Agente de Serviços ativa. O próprio procedimento armazenado pode representar um usuário que tenha a permissão RECEIVE para a fila e a permissão UPDATE para uma determinada tabela. Projete seu aplicativo para que, em cada estágio, o contexto de segurança do aplicativo não tenha permissão para executar operações inesperadas.

Os aplicativos que enviam mensagens entre instâncias SQL Server podem usar a segurança de transporte, a segurança de diálogo ou ambas. A segurança de transporte e a segurança de diálogo fornecem proteções claramente diferentes.

A segurança de diálogo do Agente de Serviços fornece criptografia de ponta a ponta e autorização para conversações entre serviços específicos. Portanto, a segurança de diálogo ajuda a proteger os dados contra a inspeção ou modificação em trânsito. Os aplicativos que transmitem dados confidenciais ou importantes ou que transmitem mensagens por redes não confiáveis devem usar a segurança de diálogo. A segurança de diálogo pode ajudar um participante a identificar o outro participante na conversação.

Como a segurança de diálogo se aplica a serviços específicos, você deve configurar a segurança de diálogo para cada serviço que a utiliza. Entretanto, uma instância pode usar a segurança de diálogo para algumas conversações e permitir que outras conversações sejam transmitidas sem criptografia. Por exemplo, as conversações de um serviço que atualiza as informações do cliente podem usar a segurança de diálogo, enquanto conversações que simplesmente procuram informações de números de peças não necessitam da segurança de diálogo.

O Agente de Serviços usa associações de serviço remoto no banco de dados que iniciam a conversação para determinar a segurança da conversação. O Agente de Serviços, portanto, usa o nome de serviço para determinar a segurança para esse serviço. Em casos em que houver mais de uma instância do mesmo serviço de destino, o roteamento dos serviços sendo iniciados deve ser cuidadosamente gerenciado de modo que estes apenas se comuniquem com os serviços de destino que contêm certificados correspondentes. Todos os serviços com o mesmo nome devem ser configurados com o mesmo certificado.

A segurança de transporte do Agente de Serviços evita conexões de rede não autorizadas com os pontos de extremidade do Agente de Serviços, detecta alterações em mensagens em trânsito e, opcionalmente, fornece a criptografia de ponta a ponta. Isso ajuda a proteger seu banco de dados de recebimento de mensagens não desejadas. Como a segurança de transporte se aplica a conexões de rede, ela automaticamente se aplica também a todas as conversações entre as instâncias SQL Server. Observe, entretanto, que a segurança de transporte não fornece a criptografia de ponta a ponta e não fornece a autenticação para conversões individuais.

Mantendo a segurança

A manutenção da segurança de aplicativos Agente de Serviços consiste em duas tarefas principais — a auditoria da configuração do aplicativo e a substituição dos certificados que o aplicativo usa.

Realize a auditoria periódica do aplicativo para determinar se a configuração de segurança está inalterada e se esta atende às necessidades de seu aplicativo.

A segurança de diálogo confia em certificados para autenticação e criptografia. A segurança de transporte também pode usar certificados. Um certificado possui um tempo de duração durante o qual é válido. O certificado não é válido antes desse tempo nem depois que esse tempo expira. O Agente de Serviços não usa certificados que não sejam atualmente válidos. Além disso, SQL Server inclui a opção do ACTIVE FOR BEGIN_DIALOG para tornar um certificado disponível para o Agente de Serviços. Para atualizar certificados, crie ou carregue certificados novos com a opção ACTIVE FOR BEGIN_DIALOG definida como OFF. Depois que todos os certificados forem carregados, altere os certificados atuais em todos os bancos de dados para tornar os certificados indisponíveis para o Agente de Serviços. Então, altere os novos certificados definindo a opção ACTIVE FOR BEGIN_DIALOG de modo que esses certificados tornem-se disponíveis para o Agente de Serviços.

Para obter mais informações sobre certificados, consulte Certificados e Service Broker e CREATE CERTIFICATE (Transact-SQL).