Tokens de acesso
Um token de acesso é um objeto que descreve o contexto de segurança de um processo 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 desse usuário tem uma cópia desse 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 SID ( identificador de segurança ) da 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 mantidos pelo usuário ou pelos grupos do usuário
- Um SID proprietário
- O SID para o grupo primário
- A DACL 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 é um token primário ou de representação
- Uma lista opcional de restrição de SIDs
- Níveis de representação atuais
- Outras estatísticas
Cada processo tem um token 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. Além disso, um thread pode representar uma conta cliente. A representação permite que o thread interaja com objetos protegíveis usando o contexto de segurança do cliente. Um thread que representa um cliente tem um token primário e um token de representação.
Use a função OpenProcessToken para recuperar um identificador para o token primário de um processo. Use a função OpenThreadToken para recuperar um identificador para o token de representação de um thread. Para obter mais informações, confira Representação.
Você pode usar as funções a seguir 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. Ele 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 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 de restrição. |
OpenProcessToken | Recupera um identificador para o token de acesso primário para um processo. |
Openthreadtoken | Recupera um identificador para o token de acesso de representação de um thread. |
Setthreadtoken | Atribui ou remove um token de representação para um thread. |
SetTokenInformation | Altera o proprietário, o grupo primário ou o DACL padrão de um token. |
As funções de token de acesso usam as estruturas a seguir 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 de proprietário padrão para os descritores de segurança de novos objetos. |
TOKEN_PRIMARY_GROUP | O SID do 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 primário ou de representação. |