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

MoF-файл, создающий пространство имен, также может определять дескрипторы безопасности для пространства имен путем включения квалификатора NamespaceSecuritySDDL с дескрипторов безопасности в формате sddl .

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

Следующая процедура задает дескриптор безопасности для пространства имен root\MyNamespace . Строка SDDL задает владельца и группу для пользователей, прошедших проверку подлинности, и указывает список управления доступом на уровне пользователей на уровне пользователей, который наследуется дочерними пространствами имен. DACL позволяет пользователю считывать данные, выполнять методы, записывать данные в классы поставщиков и использовать удаленный доступ: WBEM_ENABLE, WBEM_METHOD_EXECUTE, WBEM_WRITE_PROVIDERWBEM_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 пространства имен

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