가장
가장은 스레드를 소유하는 프로세스의 컨텍스트와 다른 보안 컨텍스트에서 스레드를 실행할 수 있는 기능입니다. 클라이언트의 보안 컨텍스트에서 실행할 때 서버는 어느 정도 클라이언트를 "is"합니다. 서버 스레드는 클라이언트의 자격 증명을 나타내는 액세스 토큰을 사용하여 클라이언트가 액세스할 수 있는 개체에 대한 액세스를 얻습니다.
가장의 주된 이유는 클라이언트의 ID에 대해 액세스 검사를 수행하기 위해서입니다. 액세스 검사에 클라이언트의 ID를 사용하면 클라이언트가 수행할 수 있는 권한에 따라 액세스가 제한되거나 확장될 수 있습니다. 예를 들어 파일 서버에 기밀 정보가 포함된 파일이 있고 이러한 각 파일이 ACL로 보호되었다고 가정합니다. 클라이언트가 이러한 파일의 정보에 무단으로 액세스하지 못하도록 하기 위해 서버는 파일에 액세스하기 전에 클라이언트를 가장할 수 있습니다.
가장을 위한 액세스 토큰
액세스 토큰은 프로세스 또는 스레드의 보안 컨텍스트를 설명하는 개체입니다. 사용자 계정의 ID와 사용자 계정에 사용할 수 있는 권한의 하위 집합을 포함하는 정보를 제공합니다. 모든 프로세스에는 프로세스와 연결된 사용자 계정의 보안 컨텍스트를 설명하는 기본 액세스 토큰 이 있습니다. 기본적으로 프로세스의 스레드가 보안 개체와 상호 작용할 때 시스템은 기본 토큰을 사용합니다. 그러나 스레드가 클라이언트를 가장하는 경우 가장 스레드에는 기본 액세스 토큰과 가장 토큰이 모두 있습니다. 가장 토큰은 클라이언트의 보안 컨텍스트를 나타내며, 이 액세스 토큰은 가장하는 동안 액세스 검사에 사용되는 토큰입니다. 가장이 끝나면 스레드는 기본 액세스 토큰만 사용하여 로 되돌아갑니다.
OpenProcessToken 함수를 사용하여 프로세스의 기본 토큰에 대한 핸들을 가져올 수 있습니다. OpenThreadToken 함수를 사용하여 스레드의 가장 토큰에 대한 핸들을 가져옵니다.
관련 항목