Поделиться через


Настройка безопасности при создании пространства имен

Файл формата управляемых объектов (MOF), который создает пространство имен, также может определять дескрипторы безопасности для пространства имен, включая квалификатор NamespaceSecuritySDDL с дескриптором безопасности на языке определения дескриптора безопасности (SDDL) .

Для защиты любого пространства имен можно использовать namespaceSecuritySDDL. Этот квалификатор можно также использовать в простом MOF-файле для изменения дескриптора безопасности в существующем пространстве имен. Строка SDDL обрабатывается WMI, чтобы установить безопасность пространства имен, но не хранится в виде строки. Если дескриптор безопасности не указан, используется безопасность по умолчанию. Дополнительные сведения см. в разделе Настройка дескрипторов безопасности namepace.

Следующая процедура задает дескриптор безопасности для пространства имен root\MyNamespace. Строка SDDL задает владельца и группу для прошедших проверку подлинности пользователей и задает список управления доступом (DACL), унаследованный дочерними пространствами имен. DACL позволяет пользователю читать данные, выполнять методы, записывать данные в классы поставщиков и использовать удаленный доступ: WBEM_ENABLE, WBEM_METHOD_EXECUTE, WBEM_WRITE_PROVIDER, WBEM_REMOTE_ACCESS. Дополнительную информацию смотрите в Доступ к пространствам имен WMI.

Установить DACL пространства имен

  1. Создайте файл формата управляемых объектов (MOF) или измените существующий MOF-файл, чтобы пространство имен включало квалификатор NamespaceSecuritySDDL с строкой SDDL.

    В следующем примере кода показано, что измененное пространство имен — root\MyNamespace, а файл называется MyNamespace_security.mof.

    #pragma autorecover
    #pragma namespace("\\\\.\\root")
    [NamespaceSecuritySDDL ("O:BAG:BAD:(A;CI;0x60003;;;WD)")]
    Instance of __Namespace
    {
      Name = "MyNamespace";
    };
    
  2. Помните, что строка SDDL чувствительна к регистру: буквы должны быть заглавными.

    В следующем примере кода показаны буквы "o" и "g" в строке SDDL с буквами в нижнем регистре, и это вызовет ошибку при возврате Mofcomp.exe.

    #pragma autorecover
    #pragma namespace("\\\\.\\root")
    [NamespaceSecuritySDDL("o:BAg:BAD:(A;CI;0x60003;;;WD)")] 
    Instance of __Namespace
    {
      Name = "MyNamespace";
    };
    
  3. Запустите Mofcomp.exe для компиляции MOF-файла.

    c:\mofcomp MyNamespace_security.mof

    В C++используйте методы IMoFCompiler.

  4. Если ваша попытка задать DACL для пространства имен завершается неудачей, рассмотрите следующие сообщения об ошибках:

    Ошибка Описание
    WBEM_E_INVALID_PARAMETER Нет наследуемого DACL. Кроме того, вызывающий объект нарушил DACL или SD в родительском пространстве имен.
    WBEM_E_ACCESS_DENIED Вызывающий объект не имеет разрешения на обновление SDDL в MOF.

     

Установка дескрипторов безопасности пространства имен

Константы прав доступа к пространству имен

Константы флагов пространства имен ACE

изменение безопасности доступа в защищаемых объектах