Conceitos de segurança COM+

O COM+ fornece vários recursos de segurança que você pode usar para ajudar a proteger seus aplicativos COM+, desde serviços que você configura administrativamente até APIs que você pode chamar dentro do código.

Sempre que possível, para aplicativos COM+, é melhor usar a segurança automática, como segurança e autenticação declarativas baseadas em função, em vez de configurar a segurança dentro dos componentes. O uso da segurança automática facilita a gravação e a manutenção de componentes, facilita o design da segurança em um aplicativo inteiro e, como é configurado administrativamente, facilita a modificação da diretiva de segurança de um aplicativo. Esses serviços de segurança automática possibilitam que você deixe todas as funcionalidades relacionadas à segurança fora de seus componentes. Quando você puder ativar os serviços e configurá-los adequadamente, o COM+ lidará com os detalhes da aplicação da diretiva de segurança especificada.

No entanto, quando os serviços de segurança automática no COM+ não fazem exatamente o que você precisa que eles façam, você pode estendê-los, aproveitando a plataforma de segurança automática fornecida pelo COM+. Nos casos em que você optar por não usar a segurança automática ou onde deseja usá-la, mas precisa se basear nela para atender aos requisitos de segurança do seu aplicativo, você tem as seguintes opções para configurar a segurança programaticamente:

  • Segurança programática baseada em função — por exemplo, verificação de função, que está disponível quando a segurança baseada em função está habilitada para seu aplicativo.
  • Representação — para quando você deseja usar a identidade de um cliente para acessar um recurso protegido.
  • Recursos de auditoria com base em informações de contexto de chamada de segurança — também disponíveis quando a segurança baseada em função está habilitada.

Os mecanismos que você usa para ajudar a proteger um determinado aplicativo dependerão dos requisitos específicos desse aplicativo. Algumas opções de segurança podem afetar a forma como você escreve componentes e algumas podem afetar significativamente o design do aplicativo. Antes de tomar qualquer decisão sobre como implementar uma estratégia de segurança para um aplicativo, você deve considerar seus requisitos de segurança no contexto de seu design geral — requisitos de desempenho, acesso a dados, design físico — e escolher a combinação mais adequada de recursos de segurança. Para obter mais informações sobre como implementar a segurança programática, consulte Segurança de componentes programáticos.

Breves descrições de categorias, recursos e problemas de segurança COM+ são fornecidas aqui, com links para tópicos nesta seção que fornecem uma discussão detalhada de cada uma das áreas importantes.

Observação

Embora não sejam discutidos nesta seção, os componentes em fila também têm problemas específicos relacionados a quais recursos de segurança estão disponíveis para eles. Para obter detalhes, consulte Segurança de componentes em fila e Desenvolvendo componentes em fila.

 

Segurança baseada em função

A segurança baseada em função é o recurso central da segurança do aplicativo COM+. Usando funções, você pode construir administrativamente uma política de autorização para um aplicativo, escolhendo (até o nível do método, se necessário) quais usuários podem acessar quais recursos. Além disso, as funções fornecem uma estrutura para impor a verificação de segurança dentro do código se seu aplicativo exigir um controle de acesso mais refinado.

A segurança baseada em função é criada em um mecanismo geral que permite recuperar informações de segurança sobre todos os chamadores upstream na cadeia de chamadas para seu componente. Essa facilidade é útil especialmente se você deseja fazer auditoria e registro detalhados. Para obter uma descrição dos recursos de auditoria fornecidos pelo COM+, consulte Acessando informações de contexto de chamada de segurança.

Para obter uma descrição dos problemas de segurança e administração baseados em função que você deve considerar ao usá-lo, consulte Administração de segurança baseada em função.

Autenticação de cliente

Antes de autorizar os clientes a acessarem recursos, você deve ter certeza de que eles são quem dizem ser. Para habilitar essa verificação de identidade, o COM+ fornece serviços de autenticação. Embora esses serviços sejam realmente fornecidos em um nível mais fundamental por COM e Microsoft Windows, um aplicativo COM+ permite que você simplesmente ative o serviço de autenticação administrativamente para que ele funcione sob as cobertas, transparente para o aplicativo. Para obter uma descrição dos serviços de autenticação, consulte Autenticação de cliente.

Representação e delegação de clientes

Em alguns casos, seu aplicativo precisa fazer o trabalho em nome de um cliente usando a identidade do cliente — por exemplo, ao acessar um banco de dados que autenticará o cliente original. Isso requer que seu aplicativo represente o cliente. O COM+ fornece facilidades para permitir vários níveis de representação. A representação é configurada administrativamente, mas você também deve fornecer suporte para representação com o código dos componentes do aplicativo. Para obter uma descrição da representação e dos problemas relacionados ao seu uso, consulte Representação e delegação de cliente.

Usando a diretiva de restrição de software no COM+

Uma política de restrição de software fornece uma maneira de executar código não confiável e, portanto, potencialmente prejudicial em um ambiente restrito para que não possa usar indevidamente os privilégios do usuário. Ele faz isso atribuindo níveis de confiança aos arquivos que o usuário pode executar. Por exemplo, certos arquivos de sistema podem ser totalmente confiáveis e ter acesso irrestrito aos privilégios do usuário, enquanto um arquivo que foi baixado da Internet pode ser completamente não confiável e, portanto, permitido ser executado apenas em um ambiente restrito, onde é proibido usar quaisquer privilégios de usuário sensíveis à segurança.

A diretiva de restrição de software em todo o sistema é controlada por meio da ferramenta administrativa Diretiva de Segurança Local, que permite aos administradores configurar níveis de confiança para arquivos individuais. No entanto, todos os aplicativos de servidor COM+ são executados no arquivo dllhost.exe. Portanto, COM+ fornece uma maneira de especificar a diretiva de restrição de software para cada aplicativo de servidor para que eles não precisem depender da diretiva de restrição do arquivo dllhost.exe. Para obter uma discussão sobre como usar a diretiva de restrição de software em COM+, consulte Usando a diretiva de restrição de software em COM+.

Segurança de aplicativos de biblioteca

Os aplicativos de biblioteca têm considerações especiais de segurança. Como esses aplicativos são executados no processo do cliente, eles são afetados pela segurança imposta pelo processo de hospedagem, enquanto não é possível controlar a segurança em nível de processo. Para obter uma descrição dos fatores a serem considerados para aplicativos de biblioteca, consulte Segurança de aplicativos de biblioteca.

Segurança de aplicativos de várias camadas

Os aplicativos COM+ são tipicamente aplicativos de camada intermediária; ou seja, eles movem informações entre clientes e recursos de back-end, como bancos de dados. Escolhas difíceis podem estar envolvidas na determinação de onde a segurança deve ser aplicada e em que grau. A segurança envolve inerentemente compensações de desempenho. Alguns dos mais graves deles ocorrem quando você deve impor a verificação de segurança na camada de dados e na camada intermediária. Para obter uma discussão dos problemas a serem considerados, consulte Segurança de aplicativos de várias camadas.

Autenticação de cliente

Representação e delegação de clientes

Tarefas de segurança COM+

Segurança de aplicativos de biblioteca

Segurança de aplicativos de várias camadas

Segurança de componentes programáticos

Administração de segurança baseada em função

Usando a diretiva de restrição de software no COM+