Partilhar via


Definindo a segurança do processo do aplicativo cliente

Os aplicativos cliente que chamam interfaces WMI podem controlar os níveis de segurança de seus processos. Todos os aplicativos WMI acessam o WMI por meio de COM, e você pode chamar a função COM CoInitializeSecurity para definir a segurança de seus processos. Aplicações que fazem chamadas assíncronas para o WMI e aplicações que se registam como consumidores de eventos definem níveis de segurança nas chamadas para o WMI.

Se você não fizer uma chamada explícita para CoInitializeSecurity, o COM chama-a implicitamente com valores do registo. No entanto, os valores do registo podem ter configurações mais baixas para impersonação e autenticação que não fornecem a segurança necessária para o WMI. Para obter mais informações, consulte Definindo o nível de segurança padrão do processo usando C++.

O acesso assíncrono ao WMI não é recomendado. Um retorno de chamada assíncrono permite que um usuário não autenticado forneça dados ao coletor. Isso representa riscos de segurança para seus scripts e aplicativos. Para eliminar os riscos, use comunicação semissíncrona ou síncrona ou execute verificações de acesso adequadas em seu aplicativo cliente. Para obter mais informações, consulte "Calling a Method".

Chamadas para qualquer um dos proxies WMI (IWbemServices, IEnumWbemClassObject,IWbemCallResultou IWbemRefresher) utilizam um ponteiro fora do processo. Para obter mais informações sobre os padrões e recomendações, consulte Configurações de segurança no IWbemServices e outros proxies.

O procedimento a seguir descreve as etapas que você deve executar para definir a segurança do WMI em seu processo de aplicativo.

Para definir a segurança do WMI em seu processo de inscrição

  1. Determine os níveis de segurança necessários para os sistemas operacionais Windows nos quais o aplicativo cliente é executado.
  2. Chame a função COM CoInitializeSecurity para definir a segurança padrão para o processo em que o aplicativo cliente é executado. Isso declara quanta segurança outros aplicativos exigem para acessar o processo no qual seu aplicativo é executado.
  3. Se você precisar alterar a segurança em um proxy individual, por exemplo, em outra chamada para IWbemServices, chame CoSetProxyBlanket.
  4. Se você precisar controlar o hardware remoto ou um objeto do sistema que exija mais privilégios, use a funçãoAdjustTokenPrivileges para habilitar os privilégios necessários. Observe que você não pode habilitar um privilégio que o processo ainda não tenha atribuído a ele. Para obter mais informações, consulte Verificando o acesso a objetos particulares.

Para obter mais informações sobre como definir o nível de segurança do processo padrão, consulte Definindo o nível de segurança do processo padrão usando C++ e Definindo o nível de segurança do processo padrão usando o VBScript.