Nota
O acesso a esta página requer autorização. Podes tentar iniciar sessão ou mudar de diretório.
O acesso a esta página requer autorização. Podes tentar mudar de diretório.
Quando um cliente faz uma chamada de método para um objeto enfileirado, a chamada é realmente feita para o gravador, que a empacota como parte de uma mensagem para o servidor. O ouvinte lê a mensagem da fila e passa-a para o leitor. O player invoca o componente de servidor real e faz a mesma chamada de método. O componente de servidor deve observar o contexto de chamada de segurança do cliente (não o contexto de chamada de segurança do jogador) quando o jogador faz a chamada de método. O gravador controla o contexto da chamada de segurança do cliente na mensagem e o player a desmarechal no servidor antes de fazer a chamada do método. No que diz respeito ao objeto do servidor, não há diferença no contexto de segurança entre uma chamada direta do cliente e uma chamada indireta do jogador. Em particular, os métodos invocados são executados com os privilégios do remetente.
Um componente enfileirado COM+ suporta semântica de segurança baseada em função, assim como outros componentes criados para uso com aplicativos COM+. Os componentes de um aplicativo em fila podem, portanto, usar interfaces programáticas para descobrir a associação de função de seu chamador (ISecurityCallContext::IsCallerInRole) ou um usuário específico (ISecurityCallContext::IsUserInRole). É recomendável que qualquer componente enfileirado com um potencial impacto na segurança use essas interfaces para verificar explicitamente as credenciais do remetente.
A identidade do chamador é a identidade associada a uma chamada de método. A identidade do chamador é usada pela segurança baseada em função e está presente no contexto da chamada de segurança. Nos componentes enfileirados, a identidade do chamador é representada como dados na mensagem do serviço de enfileiramento de mensagens. O serviço de enfileiramento de mensagens autentica a identidade do remetente da mensagem. Quando a identidade do chamador e a identidade do remetente da mensagem são as mesmas, o serviço de enfileiramento de mensagens autentica a mensagem e o chamador. Este é o caso habitual.
Observação
Os componentes enfileirados COM+ não oferecem suporte à segurança no estilo de representação, o que permite que um servidor obtenha um token de acesso correspondente à identidade do cliente e o use para executar verificações de controle de acesso ou agir sob o contexto de segurança do cliente.
Quando o chamador de um componente em fila está interagindo com o componente por meio de um gravador fora do processo, as identidades do chamador e do remetente da mensagem (gravador) podem ser diferentes. Nesse caso, os componentes enfileirados COM+ verificam se o remetente da mensagem é um membro da função Usuário Confiável QC no servidor. Além disso, o gravador fora de processo requer um certificado de autenticação porque está sendo autenticado pelo serviço de enfileiramento de mensagens.
Os membros da função Usuário Confiável do QC têm permissão para especificar uma identidade arbitrária, o que significa que um membro mal-intencionado pode executar uma chamada de componente enfileirada com privilégios elevados. Recomenda-se, por conseguinte, que o número desses utilizadores seja reduzido ao mínimo absoluto.
Devido ao risco de um ataque sofisticado associado a qualquer mecanismo que propague a identidade em uma rede, bem como ao risco de um simples ataque de negação de serviço inundando as filas com solicitações inexecutáveis, é recomendável implantar o serviço de componentes enfileirados COM+ somente em uma rede de hosts confiáveis — por exemplo, numa rede privada ou numa rede privada virtual, ou atrás de uma firewall configurada adequadamente.
Os componentes enfileirados COM+ são executados em DCOM, para que você possa ajudar a proteger a integridade e o sigilo de chamadas de método enfileiradas selecionando de Privacidade de Pacotes como a configuração Nível de Autenticação de Chamadas de na guia Segurança da folha de Propriedades de do aplicativo em fila.
Tópicos relacionados