Suplantación de un cliente de canalización con nombre

La suplantación es la capacidad de un subproceso para ejecutarse en un contexto de seguridad diferente al del proceso que posee el subproceso. La suplantación permite al subproceso del servidor realizar acciones en nombre del cliente, pero dentro de los límites del contexto de seguridad del cliente. Normalmente, el cliente tiene un nivel inferior de derechos de acceso. Para obtener más información, consulte Suplantación.

Un subproceso de servidor de canalización con nombre puede llamar a la función ImpersonateNamedPipeClient para asumir el token de acceso del usuario conectado al extremo del cliente de la canalización. Por ejemplo, un servidor de canalización con nombre puede proporcionar acceso a una base de datos o a un sistema de archivos al que el servidor de canalización tiene acceso con privilegios. Cuando un cliente de canalización envía una solicitud al servidor, el servidor suplanta al cliente e intenta acceder a la base de datos protegida. A continuación, el sistema concede o deniega el acceso del servidor, en función del nivel de seguridad del cliente. Cuando finalice el servidor, usa la función RevertToSelf para restaurar su token de seguridad original.

El nivel de suplantación determina las operaciones que el servidor puede realizar al suplantar al cliente. De forma predeterminada, un servidor suplanta en el nivel de suplantación SecurityImpersonation. Sin embargo, cuando el cliente llama a la función CreateFile para abrir un identificador al final de la canalización del cliente, el cliente puede usar la marca de SECURITY_SQOS_PRESENT para controlar el nivel de suplantación del servidor.