Compartilhar via


Representação

Representação é a capacidade de um thread de executar em um contexto de segurança que é diferente do contexto do processo que possui o thread. Ao ser executado no contexto de segurança do cliente, o servidor "é" o cliente, até certo ponto. O thread do servidor usa um token de acesso que representa as credenciais do cliente para obter acesso aos objetos aos quais o cliente tem acesso.

O principal motivo para a representação é fazer com que verificações de acesso sejam executadas em relação à identidade do cliente. Usar a identidade do cliente para verificações de acesso pode fazer com que o acesso seja restrito ou expandido, dependendo do que o cliente tem permissão para fazer. Por exemplo, suponha que um servidor de arquivos tenha arquivos contendo informações confidenciais e que cada um desses arquivos esteja protegido por uma ACL. Para ajudar a impedir que um cliente obtenha acesso não autorizado às informações nesses arquivos, o servidor pode representar o cliente antes de acessar os arquivos.

Tokens de acesso para representação

Os tokens de acesso são objetos que descrevem o contexto de segurança de um processo ou thread. Eles fornecem informações que incluem a identidade de uma conta de usuário e um subconjunto dos privilégios disponíveis para a conta de usuário. Cada processo tem um token de acesso primário que descreve o contexto de segurança da conta de usuário associada ao processo. Por padrão, o sistema usa o token primário quando um thread do processo interage com um objeto protegível. No entanto, quando um thread representa um cliente, o thread de representação tem um token de acesso primário e um token de representação. O token de representação representa o contexto de segurança do cliente, e esse token de acesso é aquele que é usado para verificações de acesso durante a representação. Quando a representação termina, o thread volta a usar apenas o token de acesso primário.

Você pode usar a função OpenProcessToken para obter um identificador para o token primário de um processo. Use a função OpenThreadToken para obter um identificador para o token de representação de um thread.

Tokens de acesso

Delegação e representação