Compartir a través de


Establecer la seguridad en la creación de espacios de nombres

El archivo Managed Object Format (MOF) que crea un espacio de nombres también puede definir los descriptores de seguridad para el espacio de nombres mediante la inclusión del calificador NamespaceSecuritySDDL con el descriptor de seguridad en formato de lenguaje de definición de descriptores de seguridad (SDDL ).

Puede usar NamespaceSecuritySDDL para proteger cualquier espacio de nombres. También puede usar este calificador en un archivo MOF sencillo para modificar el descriptor de seguridad en un espacio de nombres existente. WMI procesa la cadena SDDL para establecer la seguridad del espacio de nombres, pero no se almacena como una cadena. Si no se especifica ningún descriptor de seguridad, se usa la seguridad predeterminada. Para obtener más información, vea Establecer descriptores de seguridad del espacio de nombres.

El procedimiento siguiente establece el descriptor de seguridad para el namespace root\MyNamespace. La cadena SDDL establece el propietario y el grupo en usuarios autenticados y especifica una lista de control de acceso discrecional (DACL) heredada por espacios de nombres secundarios. La DACL permite al usuario leer datos, ejecutar métodos, escribir datos en clases de proveedor y usar el acceso remoto: WBEM_ENABLE, WBEM_METHOD_EXECUTE, WBEM_WRITE_PROVIDER, WBEM_REMOTE_ACCESS. Para obtener más información, vea Acceso a los espacios de nombres WMI.

Para establecer una DACL de espacio de nombres

  1. Cree un archivo de formato de objeto administrado (MOF) o modifique el archivo MOF existente que defina el espacio de nombres para agregar el calificador NamespaceSecuritySDDL con la cadena SDDL.

    En el ejemplo de código siguiente se muestra que el espacio de nombres que se va a modificar es root\MyNamespace y el archivo se denomina MyNamespace_security.mof.

    #pragma autorecover
    #pragma namespace("\\\\.\\root")
    [NamespaceSecuritySDDL ("O:BAG:BAD:(A;CI;0x60003;;;WD)")]
    Instance of __Namespace
    {
      Name = "MyNamespace";
    };
    
  2. Tenga en cuenta que la cadena SDDL distingue mayúsculas de minúsculas: las letras deben escribirse en mayúsculas.

    En el ejemplo de código siguiente se muestran las letras "o" y "g" en la cadena SDDL como minúsculas y hará que Mofcomp.exe devuelvan un error.

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

    c:\mofcomp MyNamespace_security.mof

    En C++, use los métodos IMoFCompiler .

  4. Si se produce un error en el intento de establecer la DACL del espacio de nombres, tenga en cuenta los siguientes mensajes de error:

    Error Descripción
    WBEM_E_INVALID_PARAMETER No hay DACL heredado. Como alternativa, el autor de la llamada ha infringido la DACL o el SD en el espacio de nombres primario.
    WBEM_E_ACCESS_DENIED El autor de la llamada no tiene permiso para actualizar el SDDL en MOF.

     

Establecer descriptores de seguridad de espacio de nombres

constantes de derechos de acceso del espacio de nombres

constantes de marca ACE de espacio de nombres

cambiar la seguridad de acceso en objetos protegibles