Share via


Impostazione della sicurezza per la creazione dello spazio dei nomi

Il file MOF (Managed Object Format) che crea uno spazio dei nomi può anche definire i descrittori di sicurezza per lo spazio dei nomi includendo il qualificatore NamespaceSecuritySDDL con il descrittore di sicurezza nel formato SDDL (Security Descriptor Definition Language).

È possibile usare NamespaceSecuritySDDL per proteggere qualsiasi spazio dei nomi. È anche possibile usare questo qualificatore in un file MOF semplice per modificare il descrittore di sicurezza in uno spazio dei nomi esistente. La stringa SDDL viene elaborata da WMI per stabilire la sicurezza dello spazio dei nomi, ma non viene archiviata come stringa. Se non viene specificato alcun descrittore di sicurezza, viene usata la sicurezza predefinita. Per altre informazioni, vedere Impostazione dei descrittori di sicurezza namepace.

La procedura seguente imposta il descrittore di sicurezza per lo spazio dei nomi root\MyNamespace . La stringa SDDL imposta il proprietario e il gruppo per gli utenti autenticati e specifica un elenco di controllo di accesso discrezionale (DACL) ereditato dagli spazi dei nomi figlio. L'elenco DACL consente all'utente di leggere i dati, eseguire metodi, scrivere dati nelle classi del provider e usare l'accesso remoto: WBEM_ENABLE, WBEM_METHOD_EXECUTE, WBEM_WRITE_PROVIDERWBEM_REMOTE_ACCESS. Per altre informazioni, vedere Accesso agli spazi dei nomi WMI.

Per impostare un DACL dello spazio dei nomi

  1. Creare un file MOF (Managed Object Format) o modificare il file MOF esistente che definisce lo spazio dei nomi per aggiungere il qualificatore NamespaceSecuritySDDL con la stringa SDDL.

    L'esempio di codice seguente mostra che lo spazio dei nomi da modificare è root\MyNamespace e il file è denominato MyNamespace_security.mof.

    #pragma autorecover
    #pragma namespace("\\\\.\\root")
    [NamespaceSecuritySDDL ("O:BAG:BAD:(A;CI;0x60003;;;WD)")]
    Instance of __Namespace
    {
      Name = "MyNamespace";
    };
    
  2. Tenere presente che la stringa SDDL fa distinzione tra maiuscole e minuscole: le lettere devono essere maiuscole.

    L'esempio di codice seguente mostra le lettere "o" e "g" nella stringa SDDL come minuscole e causerà la restituzione di un errore Mofcomp.exe.

    #pragma autorecover
    #pragma namespace("\\\\.\\root")
    [NamespaceSecuritySDDL("o:BAg:BAD:(A;CI;0x60003;;;WD)")] 
    Instance of __Namespace
    {
      Name = "MyNamespace";
    };
    
  3. Eseguire Mofcomp.exe per compilare il file MOF.

    c:\mofcomp MyNamespace_security.mof

    In C++, usare i metodi IMoFCompiler .

  4. Se il tentativo di impostare l'elenco DACL dello spazio dei nomi ha esito negativo, considerare i messaggi di errore seguenti:

    Errore Descrizione
    WBEM_E_INVALID_PARAMETER Non esiste un DACL ereditato. In alternativa, il chiamante ha violato il DACL o lo SD nello spazio dei nomi padre.
    WBEM_E_ACCESS_DENIED Il chiamante non dispone dell'autorizzazione per aggiornare l'SDDL in MOF.

     

Impostazione dei descrittori di sicurezza dello spazio dei nomi

Costanti diritti di accesso dello spazio dei nomi

Costanti del flag ACE dello spazio dei nomi

Modifica della sicurezza di accesso negli oggetti a protezione diretta