Compartilhar via


Configurando a segurança na criação do namespace

O arquivo MOF (Managed Object Format) que cria um namespace também pode definir os descritores de segurança para o namespace, incluindo o qualificador NamespaceSecuritySDDL com o descritor de segurança no formato SDDL (linguagem de definição de descritor de segurança ).

Você pode usar NamespaceSecuritySDDL para proteger qualquer namespace. Você também pode usar esse qualificador em um arquivo MOF simples para alterar o descritor de segurança em um namespace existente. A cadeia de caracteres SDDL é processada pelo WMI para estabelecer a segurança do namespace, mas não é armazenada como uma cadeia de caracteres. Se nenhum descritor de segurança for especificado, a segurança padrão será usada. Para obter mais informações, consulte Configurando descritores de segurança do namespace.

O procedimento a seguir define o descritor de segurança para o namespace root\MyNamespace . A cadeia de caracteres SDDL define o proprietário e o grupo para usuários autenticados e especifica uma DACL (lista de controle de acesso discricionário) herdada por namespaces filho. A DACL permite ao usuário o direito de ler dados, executar métodos, gravar dados em classes de provedor e usar o acesso remoto: WBEM_ENABLE, WBEM_METHOD_EXECUTE, WBEM_WRITE_PROVIDER, WBEM_REMOTE_ACCESS. Para obter mais informações, consulte Access to WMI Namespaces.

Para definir um DACL de namespace

  1. Crie um arquivo MOF (Managed Object Format) ou modifique o arquivo MOF existente que define o namespace para adicionar o qualificador NamespaceSecuritySDDL com a cadeia de caracteres SDDL.

    O exemplo de código a seguir mostra que o namespace a ser modificado é root\MyNamespace e o arquivo é nomeado MyNamespace_security.mof.

    #pragma autorecover
    #pragma namespace("\\\\.\\root")
    [NamespaceSecuritySDDL ("O:BAG:BAD:(A;CI;0x60003;;;WD)")]
    Instance of __Namespace
    {
      Name = "MyNamespace";
    };
    
  2. Lembre-se de que a cadeia de caracteres SDDL é sensível a maiúsculas e minúsculas: as letras devem ser maiúsculas.

    O exemplo de código a seguir mostra as letras "o" e "g" na cadeia de caracteres SDDL como minúsculas e fará com que Mofcomp.exe retornem um erro.

    #pragma autorecover
    #pragma namespace("\\\\.\\root")
    [NamespaceSecuritySDDL("o:BAg:BAD:(A;CI;0x60003;;;WD)")] 
    Instance of __Namespace
    {
      Name = "MyNamespace";
    };
    
  3. Execute Mofcomp.exe para compilar o arquivo MOF.

    c:\mofcomp MyNamespace_security.mof

    No C++, use os métodos IMoFCompiler .

  4. Se a tentativa de definir o DACL do namespace falhar, considere as seguintes mensagens de erro:

    Erro Descrição
    WBEM_E_INVALID_PARAMETER Não há DACL herdado. Alternativamente, o chamador violou a DACL ou o SD no namespace pai.
    WBEM_E_ACCESS_DENIED O chamador não tem permissão para atualizar o SDDL no MOF.

     

Definindo descritores de segurança do namespace

de Direitos de Acesso do Namespace

constantes de sinalizador ace do namespace

alterando a segurança de acesso em objetos protegíveis