Representação de Cliente (Autorização)
A representação é a capacidade de um thread de executar usando informações de segurança diferentes do processo que possui o thread. Normalmente, um thread em um aplicativo de servidor representa um cliente. Isso permite que o thread do servidor atue em nome desse cliente para acessar objetos no servidor ou validar o acesso aos próprios objetos do cliente.
A API do Microsoft Windows fornece as seguintes funções para iniciar uma representação:
- Um aplicativo de servidor DDE pode chamar a função DdeImpersonateClient para representar um cliente.
- Um servidor de pipe nomeado pode chamar a função ImpersonateNamedPipeClient.
- Você pode chamar a função ImpersonateLoggedOnUser para representar o contexto de segurança do token de acesso de um usuário conectado.
- A função ImpersonateSelf permite que um thread gere uma cópia de seu próprio token de acesso. Isso é útil quando um aplicativo precisa alterar o contexto de segurança de um único thread. Por exemplo, às vezes, apenas um thread de um processo precisa habilitar um privilégio.
- Você pode chamar a função SetThreadToken para fazer com que o thread de destino seja executado no contexto de segurança de um token de representação especificado.
- Um aplicativo de servidor RPC (Chamada de Procedimento Remoto) da Microsoft pode chamar a função RpcImpersonateClient para representar um cliente.
- Um pacote de segurança ou servidor de aplicativos pode chamar a função ImpersonateSecurityContext para representar um cliente.
Para a maioria dessas representações, o thread de representação pode reverter para seu próprio contexto de segurança chamando a função RevertToSelf. A exceção é a representação RPC, na qual o aplicativo de servidor RPC chama RpcRevertToSelf ou RpcRevertToSelfEx para reverter para seu próprio contexto de segurança.
Observação: se você estiver representando um usuário de um serviço Win32 e estiver chamando APIs que dependem de variáveis de ambiente do usuário, talvez seja necessário chamar RegDisablePredefinedCache antes de fazer a representação.