Настройка безопасности при создании пространства имен
Файл формата управляемых объектов (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 пространства имен
Создайте файл формата управляемых объектов (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"; };
Помните, что строка SDDL чувствительна к регистру: буквы должны быть заглавными.
В следующем примере кода показаны буквы "o" и "g" в строке SDDL с буквами в нижнем регистре, и это вызовет ошибку при возврате Mofcomp.exe.
#pragma autorecover #pragma namespace("\\\\.\\root") [NamespaceSecuritySDDL("o:BAg:BAD:(A;CI;0x60003;;;WD)")] Instance of __Namespace { Name = "MyNamespace"; };
Запустите Mofcomp.exe для компиляции MOF-файла.
c:\mofcomp MyNamespace_security.mof
В C++используйте методы IMoFCompiler.
Если ваша попытка задать DACL для пространства имен завершается неудачей, рассмотрите следующие сообщения об ошибках:
Ошибка Описание WBEM_E_INVALID_PARAMETER Нет наследуемого DACL. Кроме того, вызывающий объект нарушил DACL или SD в родительском пространстве имен. WBEM_E_ACCESS_DENIED Вызывающий объект не имеет разрешения на обновление SDDL в MOF.
Связанные разделы