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


Маркеры доступа

Маркер доступа— это объект, описывающий контекст безопасности процесса или потока. Сведения в маркере включают удостоверение и привилегии учетной записи пользователя, связанной с процессом или потоком. Когда пользователь входит в систему, система проверяет пароль пользователя, сравнивая его с информацией, хранящейся в базе данных безопасности. Если пароль прошедший проверку подлинности, система создает маркер доступа. Каждый процесс, выполняемый от имени этого пользователя, имеет копию этого маркера доступа.

Система использует маркер доступа для идентификации пользователя при взаимодействии потока с защищаемым объектом или пытается выполнить системную задачу, требующую привилегий. Маркеры доступа содержат следующие сведения:

  • Идентификатор безопасности (SID) для учетной записи пользователя
  • Идентификаторы sid для групп, в которых пользователь является членом
  • Идентификатор безопасности входа, определяющий текущий сеанс входа в систему
  • Список привилегий , удерживаемых пользователем или группами пользователей
  • Идентификатор безопасности владельца
  • Идентификатор безопасности для основной группы
  • Значение по умолчанию DACL, используемое системой при создании защищаемого объекта без указания дескриптора безопасности
  • Источник маркера доступа
  • Является ли маркер основнымили олицетворением маркера
  • Необязательный список ограничения идентификаторов SID
  • Текущие уровни олицетворения
  • Другая статистика

Каждый процесс имеет первичный маркер, описывающий контекст безопасности учетной записи пользователя, связанной с процессом. По умолчанию система использует первичный маркер, когда поток процесса взаимодействует с защищаемым объектом. Кроме того, поток может олицетворить учетную запись клиента. Олицетворение позволяет потоку взаимодействовать с защищаемыми объектами с помощью контекста безопасности клиента. Поток, который олицетворяет клиента, имеет как основной маркер, так и маркер олицетворения.

Используйте функцию OpenProcessToken для извлечения дескриптора в основной маркер процесса. Используйте функцию OpenThreadToken, чтобы получить дескриптор маркера олицетворения потока. Дополнительные сведения см. в олицетворении.

Для управления маркерами доступа можно использовать следующие функции.

Функция Описание
AdjustTokenGroups Изменяет сведения о группе в маркере доступа.
AdjustTokenPrivileges Включает или отключает привилегии в маркере доступа. Он не предоставляет новые привилегии или отменяет существующие.
CheckTokenMembership Определяет, включен ли указанный идентификатор безопасности в указанном маркере доступа.
CreateRestrictedToken Создает новый маркер, который является ограниченной версией существующего токена. Маркер с ограниченным доступом может отключать идентификаторы SID, удаленные привилегии и список ограниченных идентификаторов БЕЗОПАСНОСТИ.
DuplicateToken Создает новый токен олицетворения, дублирующий существующий маркер.
DuplicateTokenEx Создает новый первичный маркер или маркер олицетворения, который дублирует существующий маркер.
GetTokenInformation Извлекает сведения о маркере.
IsTokenRestricted Определяет, имеет ли маркер список ограничений идентификаторов SID.
OpenProcessToken Извлекает дескриптор к основному маркеру доступа для процесса.
OpenThreadToken Извлекает дескриптор маркера доступа олицетворения для потока.
SetThreadToken Назначает или удаляет маркер олицетворения для потока.
SetTokenInformation Изменяет владельца маркера, основную группу или DACL по умолчанию.

 

Функции маркера доступа используют следующие структуры для описания частей маркера доступа.

Структура Описание
TOKEN_CONTROL Сведения, определяющие маркер доступа.
TOKEN_DEFAULT_DACL DaCL по умолчанию, используемый системой в дескрипторах безопасности новых объектов, созданных потоком.
TOKEN_GROUPS Указывает идентификаторы и атрибуты идентификаторов групп в маркере доступа.
TOKEN_OWNER Идентификатор безопасности владельца по умолчанию для дескрипторов безопасности новых объектов.
TOKEN_PRIMARY_GROUP Идентификатор безопасности основной группы по умолчанию для дескрипторов безопасности новых объектов.
TOKEN_PRIVILEGES Привилегии, связанные с маркером доступа. Также определяет, включены ли привилегии.
TOKEN_SOURCE Источник маркера доступа.
TOKEN_STATISTICS Статистика, связанная с маркером доступа.
TOKEN_USER Идентификатор безопасности пользователя, связанного с маркером доступа.

 

Функции маркера доступа используют следующие типы перечисления.

Тип перечисления Указывает
TOKEN_INFORMATION_CLASS Определяет тип устанавливаемой или извлекаемой информации из маркера доступа.
TOKEN_TYPE Определяет маркер доступа в качестве основного или олицетворения.