Negociação do Nível de Autenticação
O cliente e o servidor devem participar da autenticação, e cada parte indica que deseja executar um determinado nível de autenticação. No início de uma chamada, o nível de autenticação é negociado entre as duas partes, um serviço apropriado é escolhido e a chamada é autenticada e prossegue (com possível criptografia, dependendo do nível de autenticação escolhido). O nível de autenticação negociado entre cliente e servidor é determinado como Máximo (preferência do cliente, preferência do servidor). O efeito disso significa que o servidor sempre pode ditar um nível mínimo de autenticação com o qual se sinta confortável; ou seja, a autenticação pode ser ditada administrativamente a partir do servidor.
O cliente especifica que deseja executar a autenticação em um determinado nível, como acontece com qualquer aplicativo COM. O nível de autenticação do cliente pode ser indicado da seguinte maneira:
- Por máquina cliente, com o nível de autenticação COM em toda a máquina definido usando DCOMCNFG ou a ferramenta administrativa Serviços de Componentes.
- Por aplicativo cliente administrativamente, usando DCOMCNFG ou usando a ferramenta administrativa Serviços de Componentes se o cliente deve ser um aplicativo COM+.
- Por processo de cliente programaticamente, com CoInitializeSecurity.
- A qualquer momento programaticamente, usando CoSetProxyBlanket.
O aplicativo de servidor COM+ especifica um nível de autenticação administrativamente usando a ferramenta administrativa Serviços de Componentes (ou por meio de um script administrativo).
A negociação da autenticação de uma chamada prossegue na seguinte sequência:
- O nível de autenticação é escolhido como MAX(cliente, servidor).
- Negociação de protocolo de autenticação.
- O servidor autentica a identidade do cliente.
- Opcionalmente, o cliente autentica a identidade do servidor, dependendo do protocolo de autenticação.
- As chamadas de método são comunicadas com o nível de autenticação escolhido.
Tópicos relacionados