Олицетворение

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

Основная причина олицетворения заключается в том, чтобы проверки доступа выполнялись по отношению к удостоверению клиента. Использование удостоверения клиента для проверок доступа может привести к ограничению или расширению доступа в зависимости от того, что у клиента есть разрешение. Например, предположим, что файловый сервер содержит файлы, содержащие конфиденциальную информацию, и что каждый из этих файлов защищен ACL. Чтобы предотвратить получение клиентом несанкционированного доступа к информации в этих файлах, сервер может олицетворять клиент перед доступом к файлам.

Маркеры доступа для олицетворения

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

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

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

Делегирование и олицетворение