Usuario interactivo

El usuario interactivo es el usuario que ha iniciado sesión actualmente en el equipo donde se ejecuta el servidor COM. Si la identidad está establecida para ser el usuario interactivo, todos los clientes usan la misma instancia del servidor si el servidor registra su generador de clases como multiuso. Si ningún usuario ha iniciado sesión, el servidor no se ejecutará. Si el servidor tiene una interfaz gráfica de usuario (GUI) que el cliente necesita ver, debe usar el usuario interactivo para la identidad del servidor. Sin embargo, elegir esta identidad conlleva algunos riesgos de seguridad porque el servidor se ejecuta bajo la identidad del usuario que ha iniciado sesión sin el conocimiento o consentimiento del usuario que ha iniciado sesión. Además, una aplicación de servicio no puede mostrar una interfaz de usuario. Para obtener más información, consulte Interactive Services.

Si un servidor COM está configurado para ejecutarse como usuario interactivo, en un entorno de terminal services, el servidor se iniciará en la sesión interactiva que coincida con la identidad de usuario del cliente. Sin embargo, la aplicación cliente puede usar el moniker de sesión para hacer referencia a un objeto proporcionado por el servidor en una sesión que no coincide con la identidad del cliente. Cuando se usa, la aplicación cliente puede especificar cualquier sesión, en cuyo caso el servidor se ejecutará como el usuario propietario de la sesión, no el usuario de inicio. Los permisos de acceso predeterminados en este escenario no permitirían al usuario de inicio llamar a métodos en el servidor. Sin embargo, los siguientes riesgos de seguridad siguen siendo:

  • Si el servidor COM expone interfaces que no están controladas por COM, como puertos TCP, canalizaciones con nombre, puertos LPC, secciones de memoria compartida, etc., el usuario de inicio podría usarlos para influir en el servidor. Los objetos COM configurados para ejecutarse como el usuario interactivo deben reducir esta superficie expuesta a ataques tanto como sea posible.
  • Los objetos COM pueden establecer sus propios permisos de acceso. Si el objeto establece permisos de acceso, ya sea en su registro de AppID o llamando a CoInitializeSecurity, para permitir el acceso del usuario de inicio, el usuario podría iniciar el servidor para que se ejecute como otro usuario y, a continuación, acceder al objeto.

Identidad de aplicación

Iniciar usuario

Service Identity

Usuario especificado