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.
A representação é útil em um ambiente de computação distribuída quando os servidores devem passar solicitações de cliente para outros processos de servidor ou para o sistema operacional. Nesse caso, um servidor representa o contexto de segurança do cliente. Outros processos do servidor podem então lidar com a solicitação como se o cliente original a tivesse feito.
Por exemplo, um cliente faz uma solicitação ao Servidor A. Se o Servidor A precisar consultar o Servidor B para concluir a solicitação, o Servidor A representará o contexto de segurança do cliente e fará a solicitação ao Servidor B em nome do cliente. O Servidor B usa o contexto de segurança do cliente original, em vez da identidade de segurança do Servidor A, para determinar se a tarefa deve ser concluída.
O servidor chama RpcImpersonateClient para substituir a segurança do thread do servidor pelo contexto de segurança do cliente. Após a conclusão da tarefa, o servidor chama RpcRevertToSelf ou RpcRevertToSelfEx para restaurar o contexto de segurança definido para o thread do servidor.
Ao vincular, o cliente pode especificar informações de qualidade de serviço sobre segurança, que especificam como o servidor pode representar o cliente. Por exemplo, uma das configurações permite que o cliente especifique que o servidor não tem permissão para representá-lo. Para obter mais informações, consulte Quality of Service.
A capacidade de chamar outros servidores enquanto representa o cliente original é chamada de delegação . Quando a delegação é usada, um servidor que representa um cliente pode chamar outro servidor e pode fazer chamadas de rede com as credenciais do cliente. Ou seja, do ponto de vista do segundo servidor, as solicitações provenientes do primeiro servidor são indistinguíveis das solicitações vindas do cliente. Nem todos os fornecedores de segurança suportam a delegação. A Microsoft fornece apenas um provedor de segurança que oferece suporte à delegação: Kerberos.
A delegação pode ser um recurso perigoso devido aos privilégios que o cliente concede ao servidor durante uma chamada de procedimento remoto. É por isso que o Kerberos permite chamadas com o nível de representação de delegação somente se a autenticação mútua for solicitada. Os administradores de domínio podem limitar os computadores aos quais são feitas chamadas com nível de representação de delegação para impedir que clientes desavisados façam chamadas para servidores que possam abusar de suas credenciais.
Existe uma exceção à regra de delegação: chamadas usando ncalrpc. Quando essas chamadas são feitas, o servidor obtém direitos de delegação, mesmo que um nível de representação seja especificado. Ou seja, um servidor pode chamar outros servidores em nome do cliente. Isso funciona apenas para uma chamada remota. Por exemplo, se o cliente A chama o servidor local LB usando ncalrpc o servidor local LB pode representar e chamar o servidor remoto RB. O RB poderá agir em nome do cliente A, mas apenas no computador remoto em que o RB está sendo executado. Ele não pode fazer outra chamada de rede para o computador remoto C, a menos que LB especificou um nível de representação de delegado quando chamou RB.
Observação
O termo personificação representa dois significados sobrepostos. O primeiro significado de personificação é o processo geral de agir em nome de um cliente. O segundo significado é o nível específico de representação chamado representação. O contexto do texto geralmente esclarece o significado.