Configurar la seguridad del proceso de aplicación cliente
Las aplicaciones cliente que llaman a interfaces WMI pueden controlar los niveles de seguridad de sus procesos. Todas las aplicaciones WMI acceden a WMI a través de COM, y puede llamar a la función COM CoInitializeSecurity para establecer la seguridad de los procesos. Las aplicaciones que realizan llamadas asincrónicas a WMI y las aplicaciones que se registran como consumidores de eventos establecen los niveles de seguridad en la llamada a WMI.
Si no realiza una llamada explícita a CoInitializeSecurity, COM lo llama implícitamente con valores del Registro. Sin embargo, los valores del Registro pueden tener una configuración inferior para la suplantación y la autenticación que no proporcionen la seguridad necesaria para WMI. Para obtener más información, consulte Establecimiento del nivel de seguridad de proceso predeterminado mediante C++.
No se recomienda el acceso asincrónico a WMI. Una devolución de llamada asincrónica permite a un usuario no autenticado proporcionar datos al receptor. Esto supone riesgos de seguridad para los scripts y las aplicaciones. Para eliminar los riesgos, use la comunicación semisincrónica o sincrónica, o realice comprobaciones de acceso adecuadas en la aplicación cliente. Para obtener más información, consulte Llamada a un método.
Las llamadas a cualquiera de los servidores proxy WMI (IWbemServices, IEnumWbemClassObject,IWbemCallResult o IWbemRefresher) usan un puntero fuera del proceso. Para obtener más información sobre los valores predeterminados y las recomendaciones, vea Establecer la seguridad en IWbemServices y otros servidores proxy.
En el procedimiento siguiente se describen los pasos que debe realizar para establecer la seguridad de WMI en el proceso de aplicación.
Para establecer la seguridad de WMI en el proceso de aplicación
- Determine los niveles de seguridad necesarios para los sistemas operativos Windows en los que se ejecuta la aplicación cliente.
- Llame a la función COM CoInitializeSecurity para establecer la seguridad predeterminada para el proceso en el que se ejecuta la aplicación cliente. Esto declara la cantidad de seguridad que requieren otras aplicaciones para acceder al proceso en el que se ejecuta la aplicación.
- Si necesita cambiar la seguridad en un proxy individual, por ejemplo, en otra llamada a IWbemServices, llame a CoSetProxyBlanket.
- Si necesita controlar el hardware remoto o un objeto del sistema que requiera más privilegios, use la función AdjustTokenPrivileges para habilitar los privilegios necesarios. Tenga en cuenta que no puede habilitar un privilegio que el proceso aún no tenga asignado. Para obtener más información, consulte Comprobación del acceso a objetos privados.
Para obtener más información sobre cómo establecer el nivel de seguridad del proceso predeterminado, consulte Establecimiento del nivel de seguridad de proceso predeterminado mediante C++ y Establecimiento del nivel de seguridad de proceso predeterminado con VBScript.