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


Атрибуты SID в маркере доступа

У каждого пользователя и группы идентификатор безопасности (SID) в маркере доступа есть набор атрибутов, которые управляют тем, как система использует идентификатор безопасности в проверке доступа. В следующей таблице перечислены атрибуты, которые управляют проверкой доступа.

Атрибут Описание
SE_GROUP_ENABLED Идентификатор безопасности с этим атрибутом включен для проверок доступа. Когда система выполняет проверку доступа, она проверяет наличие разрешенных и запрещенных доступом записей управления доступом (ACEs), которые применяются к одному из включенных идентификаторов БЕЗОПАСНОСТИ в маркере доступа. Идентификатор безопасности без этого атрибута игнорируется во время проверки доступа, если не задан атрибут SE_GROUP_USE_FOR_DENY_ONLY.
SE_GROUP_USE_FOR_DENY_ONLY Идентификатор безопасности с этим атрибутом — это идентификатор безопасности, доступный только для запрета. Когда система выполняет проверку доступа, она проверяет наличие запрещенных в доступе acEs, которые применяются к идентификатору безопасности, но игнорирует доступ разрешенных ACEs для идентификатора безопасности. Если этот атрибут задан, атрибут SE_GROUP_ENABLED не задан, и идентификатор безопасности не может быть повторно активирован.

Чтобы задать или очистить атрибут SE_GROUP_ENABLED идентификатора безопасности группы, используйте функцию AdjustTokenGroups. Вы не можете отключить идентификатор безопасности группы, имеющий атрибут SE_GROUP_MANDATORY. Нельзя использовать AdjustTokenGroups, чтобы отключить идентификатор безопасности пользователя маркера доступа.

Чтобы определить, включен ли идентификатор безопасности в токене, то есть имеет ли он атрибут SE_GROUP_ENABLED, вызовите функцию CheckTokenMembership.

Чтобы задать атрибут SE_GROUP_USE_FOR_DENY_ONLY идентификатора безопасности, добавьте идентификатор безопасности в список идентификаторов безопасности только для запретов, указанных при вызове функции CreateRestrictedToken. CreateRestrictedToken может применять атрибут SE_GROUP_USE_FOR_DENY_ONLY к любому идентификатору БЕЗОПАСНОСТИ, включая идентификаторы безопасности пользователя и группы, имеющие атрибут SE_GROUP_MANDATORY. Однако вы не можете удалить атрибут только для запрета из идентификатора БЕЗОПАСНОСТИ, но не можете использовать AdjustTokenGroups, чтобы задать атрибут SE_GROUP_ENABLED для идентификатора безопасности только для запрета.

Чтобы получить атрибуты идентификатора безопасности, вызовите функцию getTokenInformationс значением TokenGroups. Функция возвращает массив SID_AND_ATTRIBUTES структур, определяющих идентификаторы групп и их атрибуты.