Compartilhar via


Apêndice A: SDDL para rótulos obrigatórios

O SDDL é uma maneira conveniente de representar permissões de acesso em um formato de cadeia de caracteres. O SDDL define cadeias de caracteres ACE e cadeias de caracteres SID para representar campos de entradas de controle de acesso. Você pode usar as funções ConvertSecurityDescriptorToStringSecurityDescriptor e ConvertStringSecurityDescriptorToSecurityDescriptor para converter o rótulo obrigatório ACE de um binário em um formato de cadeia de caracteres e voltar.

As definições para cadeias de caracteres SDDL estão no arquivo de cabeçalho, sddl.h.

A cadeia de caracteres SDDL para uma ACE de rótulo obrigatório é definida da seguinte maneira:

#define SDDL_MANDATORY_LABEL        TEXT("ML") // Integrity label
The SDDL strings for the mandatory label policy flags, which are in the access mask, are the following:
#define SDDL_NO_WRITE_UP          TEXT("NW")
#define SDDL_NO_READ_UP           TEXT("NR")
#define SDDL_NO_EXECUTE_UP         TEXT("NX")
The SDDL SID strings for the integrity levels are the following:
#define SDDL_ML_LOW          TEXT("LW")
#define SDDL_ML_MEDIUM          TEXT("ME")
#define SDDL_ML_HIGH          TEXT("HI")
#define SDDL_ML_SYSTEM          TEXT("SI")

Um exemplo do SDDL para uma ACE de rótulo obrigatório em uma SACL que especifica NO_WRITE_UP política para nível de integridade baixo é o seguinte: S:(ML;; NW;;; LW).

Você pode usar cadeias de caracteres SDDL com a função ConvertStringSecurityDescriptorToSecurityDescriptor para inicializar um descritor de segurança com um rótulo obrigatório explícito que pode ser usado como o parâmetro de atributos de segurança ao criar um novo objeto, como um arquivo, usando CreateFile.

Observação

Ao usar ConvertSecurityDescriptorToStringSecurityDescriptor, especifique o novo sinalizador de informações de segurança, LABEL_SECURITY_INFORMATION, a fim de converter um rótulo obrigatório explícito na cadeia de caracteres SDDL equivalente. Sem o sinalizador LABEL_SECURITY_INFORMATION, um rótulo obrigatório, se existir, não aparecerá na parte SACL da cadeia de caracteres.