Tokens restringidos

Un token restringido es un token de accesoprincipal o suplantación modificado por la función CreateRestrictedToken. Un proceso o suplantación de subprocesos que se ejecutan en el contexto de seguridad de un token restringido está restringido en su capacidad de acceder a objetos protegibles o realizar operaciones con privilegios. La función CreateRestrictedToken puede restringir un token de las siguientes maneras:

  • Quite los privilegios del token.
  • Aplique el atributo de solo denegación a los SID del token para que no se puedan usar para acceder a objetos protegidos. Para obtener más información sobre el atributo de solo denegación, vea Atributos de SID en un token de acceso.
  • Especifique una lista de restricciones de SID, que puede limitar el acceso a objetos protegibles.

El sistema usa la lista de restricciones de SID cuando comprueba el acceso del token a un objeto protegible. Cuando un proceso o subproceso restringido intenta acceder a un objeto protegible, el sistema realiza dos comprobaciones de acceso: una mediante los SID habilitados del token y otra con la lista de restricciones de SID. Solo se concede acceso si ambas comprobaciones de acceso permiten los derechos de acceso solicitados. Para obtener más información sobre las comprobaciones de acceso, vea Cómo las DACL controlan el acceso a un objeto.

Puede usar un token principal restringido en una llamada a la función CreateProcessAsUser . Normalmente, el proceso que llama a CreateProcessAsUser debe tener el privilegio SE_ASSIGNPRIMARYTOKEN_NAME, que normalmente solo lo mantiene el código del sistema o los servicios que se ejecutan en la cuenta localSystem. Sin embargo, si la llamada CreateProcessAsUser especifica una versión restringida del token principal del autor de la llamada, este privilegio no es necesario. Esto permite a las aplicaciones normales crear procesos restringidos.

También puede usar un token de suplantación o principal restringido en la función ImpersonateLoggedOnUser .

Para determinar si un token tiene una lista de restricciones de SID, llame a la función IsTokenRestricted .

Nota

Las aplicaciones que usan tokens restringidos deben ejecutar la aplicación restringida en escritorios distintos del escritorio predeterminado. Esto es necesario para evitar un ataque por una aplicación restringida, mediante SendMessage o PostMessage, para aplicaciones sin restricciones en el escritorio predeterminado. Si es necesario, cambie entre escritorios con fines de aplicación.