Маркеры доступа
Маркер доступа— это объект, описывающий контекст безопасности процесса или потока. Сведения в маркере включают удостоверение и привилегии учетной записи пользователя, связанной с процессом или потоком. Когда пользователь входит в систему, система проверяет пароль пользователя, сравнивая его с информацией, хранящейся в базе данных безопасности. Если пароль прошедший проверку подлинности, система создает маркер доступа. Каждый процесс, выполняемый от имени этого пользователя, имеет копию этого маркера доступа.
Система использует маркер доступа для идентификации пользователя при взаимодействии потока с защищаемым объектом или пытается выполнить системную задачу, требующую привилегий. Маркеры доступа содержат следующие сведения:
- Идентификатор безопасности (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 | Определяет маркер доступа в качестве основного или олицетворения. |