Атрибуты SID в маркере доступа
У каждого пользователя и идентификатора безопасности группы в маркере доступа есть набор атрибутов, определяющих, как система использует ИД безопасности в проверка доступа. В следующей таблице перечислены атрибуты, управляющие проверкой доступа.
attribute | Описание |
---|---|
SE_GROUP_ENABLED | Идентификатор безопасности с этим атрибутом включен для проверок доступа. Когда система выполняет проверка доступа, она проверяет наличие разрешенных и запрещенных записей управления доступом (ACE), которые применяются к одному из включенных идентификаторов безопасности в маркере доступа. Идентификатор безопасности без этого атрибута игнорируется во время проверка доступа, если не задан атрибут SE_GROUP_USE_FOR_DENY_ONLY. |
SE_GROUP_USE_FOR_DENY_ONLY | Идентификатор безопасности с этим атрибутом является идентификатором безопасности только для запретов. Когда система выполняет проверка доступа, она проверяет наличие ACE с запретом в доступе, которые применяются к sid, но игнорирует ACE, разрешенные доступом, для ИД безопасности. Если этот атрибут задан, атрибут 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 структур, которые идентифицируют идентификаторы безопасности группы и их атрибуты.