¿Qué es un token de acceso?

En los sistemas operativos de computadoras y otros marcos de software, un token de acceso es cualquier estructura de datos que contiene la información de seguridad que un proceso necesita para acceder a un objeto protegido u otro proceso que requiere autorización. Los objetos seguros suelen ser datos en el sistema de archivos con privilegios de lectura y escritura definidos, y un proceso es cualquier otro programa o servicio que requiere autorización para acceder a sus funciones. Si bien un token de acceso es simplemente un contenedor capaz de contener cualquier información, generalmente se usa para almacenar privilegios de usuario.

El concepto de un token de acceso fue concebido y utilizado principalmente por los sistemas operativos y programas de Microsoft®, pero su utilidad los ha llevado a otros lugares. La interfaz de programación de aplicaciones (API) de Google describe un método para usar tokens de acceso mientras se programan aplicaciones que necesitan acceder a los datos asociados con la cuenta de un usuario de Google. Algunas de las grandes plataformas de redes sociales también utilizan tokens de acceso en su API.

Básicamente, cuando un usuario inicia sesión en un sistema operativo o marco de sistema de software, el sistema verifica el usuario y la contraseña en una base de datos de seguridad, y se crea un token de acceso que identifica al usuario a cualquier objeto o proceso en el sistema. Cualquier proceso, como aplicaciones, programas o servicios, que inicie el usuario, llevará consigo el token de acceso. El token de acceso, entonces, necesita almacenar varios bits de datos que otro programa u objeto verifica para otorgar acceso.

Los tokens de acceso contienen los identificadores de seguridad (SID), generalmente códigos numéricos, para el usuario, cualquier grupo de usuarios al que pertenezca el usuario y la sesión de inicio de sesión actual. El token también contiene una lista de los privilegios que el usuario o los grupos tienen permitido. Hay un par de tipos diferentes de tokens de acceso, por lo que el token también necesita identificar su tipo, ya sea principal o de suplantación. Un token de acceso principal es el tipo estándar utilizado, pero también se puede crear un token de suplantación para actuar en nombre del usuario.

Cuando se llama a un token de acceso para que haga su trabajo, se encuentra con un monitor de referencia de seguridad (SRM), un servicio que supervisa el acceso a los objetos y procesos del sistema. El SRM extrae el descriptor de seguridad del objeto o proceso para compararlo con el token de acceso. El descriptor de seguridad contiene una lista de control de acceso (ACL), donde cada entrada de control de acceso (ACE) define ciertos permisos para ese objeto o proceso. Por ejemplo, en el caso de un archivo en el sistema, el descriptor de seguridad contiene información sobre qué usuarios o grupos tienen permiso para leer o escribir en el archivo. Si el token de acceso que solicita acceso para abrir o editar el archivo no coincide con los permisos en el descriptor de seguridad, el acceso falla y al usuario se le niega el acceso al archivo.