Compartir a través de


Tokens de acceso

Un token de acceso es un objeto que describe el contexto de seguridad de un proceso de 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ándola con la información almacenada en una base de datos de seguridad. Si la contraseña se autenticada, 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 de o intenta realizar una tarea del sistema que requiera privilegios. Los tokens de acceso contienen la siguiente información:

  • El identificador de seguridad (SID) de la cuenta del usuario
  • SID para los grupos de los que el usuario es miembro
  • siD de inicio de sesión que identifica la sesión de inicio de sesión de actual
  • Una lista de los privilegios de que mantiene el usuario o los grupos del usuario
  • Un SID de propietario
  • SID para el grupo principal
  • El DACL predeterminado que usa el sistema cuando el usuario crea un objeto protegible sin especificar un descriptor de seguridad
  • Origen del token de acceso
  • Si el token es unprincipal deo token de suplantación
  • Una lista opcional de restringir los SID
  • Niveles de suplantación actuales
  • Otras estadísticas

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 que el subproceso interactúe 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ónopenProcessTokenpara recuperar un identificador al token principal de un proceso. Use la funciónOpenThreadToken para recuperar un identificador del token de suplantación de un subproceso. Para obtener más información, vea 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 nuevos privilegios 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 del 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 de un token, el grupo principal o la DACL predeterminada.

 

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 del grupo en un token de acceso.
TOKEN_OWNER El 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.