Partilhar via


Tokens de acesso

Um token de acesso é um objeto que descreve o contexto de segurança de um processo de ou thread. As informações em um token incluem a identidade e os privilégios da conta de usuário associada ao processo ou thread. Quando um usuário faz logon, o sistema verifica a senha do usuário comparando-a com as informações armazenadas em um banco de dados de segurança. Se a senha for autenticada, o sistema produzirá um token de acesso. Cada processo executado em nome deste utilizador tem uma cópia deste token de acesso.

O sistema usa um token de acesso para identificar o usuário quando um thread interage com um objeto protegível ou tenta executar uma tarefa do sistema que requer privilégios. Os tokens de acesso contêm as seguintes informações:

  • O identificador de segurança (SID) para a conta do usuário
  • SIDs para os grupos dos quais o usuário é membro
  • Um SID de logon que identifica a sessão de logon atual
  • Uma lista dos privilégios de mantida pelo usuário ou pelos grupos de usuários
  • Um SID proprietário
  • O SID para o grupo primário
  • A DACL de padrão que o sistema usa quando o usuário cria um objeto protegível sem especificar um descritor de segurança
  • A origem do token de acesso
  • Se o token é umaprimáriaou representação token
  • Uma lista opcional de que restringem os SIDs
  • Níveis atuais de representação
  • Outras estatísticas

Cada processo tem umade token principalque descreve ade contexto de segurançada 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. Além disso, um thread pode representar uma conta de cliente. A representação permite que o thread interaja com objetos protegíveis usando o contexto de segurança do cliente. Um thread que está representando um cliente tem um token primário e um token de representação .

Use a funçãoOpenProcessToken para recuperar um identificador para o token primário de um processo. Use a funçãoOpenThreadToken para recuperar um identificador para o token de representação de um thread. Para obter mais informações, consulte de representação .

Você pode usar as seguintes funções para manipular tokens de acesso.

Função Descrição
AdjustTokenGroups Altera as informações do grupo em um token de acesso.
AdjustTokenPrivileges Habilita ou desabilita os privilégios em um token de acesso. Não concede novos privilégios nem revoga os existentes.
CheckTokenMembership Determina se um SID especificado está habilitado em um token de acesso especificado.
CreateRestrictedToken Cria um novo token que é uma versão restrita de um token existente. O token restrito pode ter SIDs desabilitados, privilégios excluídos e uma lista de SIDs restritos.
DuplicateToken Cria um novo token de representação que duplica um token existente.
DuplicateTokenEx Cria um novo token primário ou token de representação que duplica um token existente.
GetTokenInformation Recupera informações sobre um token.
IsTokenRestricted Determina se um token tem uma lista de SIDs restritivos.
OpenProcessToken Recupera um identificador para o token de acesso primário de um processo.
OpenThreadToken Recupera um identificador para o token de acesso de representação para um thread.
SetThreadToken Atribui ou remove um token de representação para um thread.
SetTokenInformation Altera o proprietário de um token, o grupo primário ou a DACL padrão.

 

As funções de token de acesso usam as seguintes estruturas para descrever as partes de um token de acesso.

Estrutura Descrição
TOKEN_CONTROL Informações que identificam um token de acesso.
TOKEN_DEFAULT_DACL A DACL padrão que o sistema usa nos descritores de segurança de novos objetos criados por um thread.
TOKEN_GROUPS Especifica os SIDs e atributos dos SIDs de grupo em um token de acesso.
TOKEN_OWNER O SID proprietário padrão para os descritores de segurança de novos objetos.
TOKEN_PRIMARY_GROUP O SID de grupo primário padrão para os descritores de segurança de novos objetos.
TOKEN_PRIVILEGES Os privilégios associados a um token de acesso. Também determina se os privilégios estão habilitados.
TOKEN_SOURCE A origem de um token de acesso.
TOKEN_STATISTICS Estatísticas associadas a um token de acesso.
TOKEN_USER O SID do usuário associado a um token de acesso.

 

As funções de token de acesso usam os seguintes tipos de enumeração.

Tipo de enumeração Especifica
TOKEN_INFORMATION_CLASS Identifica o tipo de informação que está sendo definida ou recuperada de um token de acesso.
TOKEN_TYPE Identifica um token de acesso como um token principal ou de representação.