Autenticação de cliente

A autenticação é o processo de determinar se os chamadores são realmente quem dizem ser, verificando a autenticidade de uma declaração de identidade. Em geral, isso pode ser feito tanto pelo servidor quanto pelo cliente, cada um autenticando o outro. Mas é especialmente importante para um aplicativo de servidor que está autorizando clientes, como com a segurança baseada em função, fazer autenticação também. A autenticação de clientes é um pré-requisito para uma política de autorização significativa. Você pode fazer toda a verificação de função que quiser, mas se você não sabe ao certo que a identidade do cliente que você está verificando é autêntica, seu aplicativo está basicamente confiando no sistema de honra.

Para aplicativos COM+, a autenticação é algo que você pode ativar e configurar administrativamente, após o que funciona de forma transparente para o aplicativo. Você especifica um nível de autenticação administrativamente usando a ferramenta administrativa Serviços de Componentes ou as funções Administrativas. Para obter detalhes sobre como definir a autenticação, consulte Definindo um nível de autenticação para um aplicativo de servidor e Habilitando a autenticação para um aplicativo de biblioteca.

Definir autenticação significa coisas diferentes, dependendo se o tipo de aplicativo é um aplicativo de servidor ou biblioteca.

Definindo a autenticação para aplicativos de servidor COM+

Para um aplicativo de servidor COM+, você define um nível de autenticação que determina como a autenticação será executada quando os clientes chamarem componentes dentro do aplicativo. Você pode escolher entre vários níveis de autenticação que fornecem diferentes graus de segurança, desde nenhuma autenticação até a criptografia de cada pacote e todos os parâmetros de chamada de método. Para obter mais informações, consulte Definindo um nível de autenticação para um aplicativo de servidor.

No entanto, uma segurança mais alta vem com algum custo de desempenho, que você deve levar em consideração ao configurar seu aplicativo. COM+ negociará entre o nível de autenticação especificado pelo cliente e servidor. A maneira como essa negociação é realizada tem o benefício de permitir que você controle administrativamente a autenticação apenas do lado do servidor. Para obter detalhes, consulte Negociação de nível de autenticação.

Observação

Você nunca deve especificar um nível de autenticação programaticamente usando CoInitializeSecurity em um aplicativo COM+. COM+ chama CoInitializeSecurity para você, e isso pode ser chamado apenas uma vez por processo.

 

Os serviços de autenticação subjacentes são fornecidos pelo COM e pelo Microsoft Windows. Em um serviço de autenticação, um terceiro fornece um certificado para um usuário, atestando a autenticidade da identidade do usuário. Essa certificação é tão confiável quanto a autoridade certificadora e, da mesma forma que uma carteira de motorista ou um passaporte, serve como um documento de certificação, depende da autoridade do emissor. Para obter informações mais detalhadas sobre serviços de autenticação, consulte COM e pacotes de segurança na documentação COM.

Definindo a autenticação para aplicativos de biblioteca COM+

Para um aplicativo de biblioteca COM+, você habilita ou desabilita a autenticação para determinar se o aplicativo estará sujeito à autenticação executada pelo processo de hospedagem. Embora a autenticação de um aplicativo de biblioteca COM+ seja amplamente controlada pelo processo de hospedagem, você pode configurar o aplicativo de biblioteca para que ele não participe da autenticação. Ou seja, as chamadas para o aplicativo podem ser autenticadas ou não e, neste último caso, a "autenticação" dos clientes sempre é bem-sucedida. Para obter mais informações, consulte Habilitando a autenticação para um aplicativo de biblioteca.

Além disso, talvez você queira ou seja necessário autenticar o cliente no banco de dados ou em algum aplicativo downstream — autenticar clientes apenas no aplicativo COM+ pode não ser suficiente. Se esse for o caso, você precisará representar o cliente para que a identidade do cliente seja propagada downstream. Para obter informações detalhadas sobre representação, consulte Representação e delegação de cliente. Para obter uma discussão sobre os problemas envolvidos na decisão de fazer autenticação na camada de dados, consulte Segurança de aplicativos de várias camadas.

Representação e delegação de clientes

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+