Tokens de acceso

Un token de acceso es un objeto que describe el contexto de seguridad de un proceso o subproceso. La información de un token incluye la identidad y los privilegios de la cuenta de usuario asociada al proceso o subproceso. Cuando un usuario inicia sesión, el sistema comprueba la contraseña del usuario comparándolo con la información almacenada en una base de datos de seguridad. Si la contraseña se autentica, el sistema genera un token de acceso. Cada proceso ejecutado en nombre de este usuario tiene una copia de este token de acceso.

El sistema usa un token de acceso para identificar al usuario cuando un subproceso interactúa con un objeto protegible o intenta realizar una tarea del sistema que requiere privilegios. Los tokens de acceso contienen la siguiente información:

Cada proceso tiene un token principal que describe el contexto de seguridad de la cuenta de usuario asociada al proceso. De forma predeterminada, el sistema usa el token principal cuando un subproceso del proceso interactúa con un objeto protegible. Además, un subproceso puede suplantar una cuenta de cliente. La suplantación permite al subproceso interactuar con objetos protegibles mediante el contexto de seguridad del cliente. Un subproceso que suplanta a un cliente tiene un token principal y un token de suplantación.

Use la función OpenProcessToken para recuperar un identificador al token principal de un proceso. Use la función OpenThreadToken para recuperar un identificador del token de suplantación de un subproceso. Para obtener más información, consulte Suplantación.

Puede usar las siguientes funciones para manipular tokens de acceso.

Función Descripción
AdjustTokenGroups Cambia la información del grupo en un token de acceso.
AdjustTokenPrivileges Habilita o deshabilita los privilegios en un token de acceso. No concede privilegios nuevos ni revoca los existentes.
CheckTokenMembership Determina si un SID especificado está habilitado en un token de acceso especificado.
CreateRestrictedToken Crea un nuevo token que es una versión restringida de un token existente. El token restringido puede tener SID deshabilitados, privilegios eliminados y una lista de SID restringidos.
DuplicateToken Crea un nuevo token de suplantación que duplica un token existente.
DuplicateTokenEx Crea un nuevo token principal o token de suplantación que duplica un token existente.
GetTokenInformation Recupera información sobre un token.
IsTokenRestricted Determina si un token tiene una lista de restricciones de SID.
OpenProcessToken Recupera un identificador para el token de acceso principal de un proceso.
OpenThreadToken Recupera un identificador del token de acceso de suplantación para un subproceso.
SetThreadToken Asigna o quita un token de suplantación para un subproceso.
SetTokenInformation Cambia el propietario, el grupo principal o la DACL predeterminada de un token.

 

Las funciones de token de acceso usan las siguientes estructuras para describir las partes de un token de acceso.

Estructura Descripción
TOKEN_CONTROL Información que identifica un token de acceso.
TOKEN_DEFAULT_DACL DACL predeterminada que el sistema usa en los descriptores de seguridad de los nuevos objetos creados por un subproceso.
TOKEN_GROUPS Especifica los SID y los atributos de los SID de grupo en un token de acceso.
TOKEN_OWNER SiD de propietario predeterminado para los descriptores de seguridad de los nuevos objetos.
TOKEN_PRIMARY_GROUP El SID de grupo principal predeterminado para los descriptores de seguridad de los nuevos objetos.
TOKEN_PRIVILEGES Privilegios asociados a un token de acceso. También determina si los privilegios están habilitados.
TOKEN_SOURCE Origen de un token de acceso.
TOKEN_STATISTICS Estadísticas asociadas a un token de acceso.
TOKEN_USER SiD del usuario asociado a un token de acceso.

 

Las funciones de token de acceso usan los siguientes tipos de enumeración.

Tipo de enumeración Especifica
TOKEN_INFORMATION_CLASS Identifica el tipo de información que se va a establecer o recuperar de un token de acceso.
TOKEN_TYPE Identifica un token de acceso como un token de suplantación o principal.