다음을 통해 공유


가장

가장은 스레드를 소유하는 프로세스의 컨텍스트와 다른 보안 컨텍스트에서 스레드를 실행하는 기능입니다. 클라이언트의 보안 컨텍스트에서 실행하는 경우 서버는 어느 정도 클라이언트를 "is"합니다. 서버 스레드는 클라이언트의 자격 증명을 나타내는 액세스 토큰을 사용하여 클라이언트가 액세스할 수 있는 개체에 대한 액세스를 얻습니다.

가장의 주된 이유는 클라이언트의 ID에 대해 액세스 검사를 수행하도록 하기 위해서입니다. 액세스 검사에 클라이언트의 ID를 사용하면 클라이언트가 수행할 수 있는 권한에 따라 액세스가 제한되거나 확장될 수 있습니다. 예를 들어 파일 서버에 기밀 정보가 포함된 파일이 있고 이러한 각 파일이 ACL로 보호되는 경우를 가정해 보겠습니다. 클라이언트가 이러한 파일의 정보에 무단으로 액세스하지 못하도록 하기 위해 서버는 파일에 액세스하기 전에 클라이언트를 가장할 수 있습니다.

가장에 대한 액세스 토큰

액세스 토큰은 프로세스 또는 스레드의 보안 컨텍스트를 설명하는 개체입니다. 사용자 계정의 ID와 사용자 계정에서 사용할 수 있는 권한의 하위 집합을 포함하는 정보를 제공합니다. 모든 프로세스에는 프로세스와 연결된 사용자 계정의 보안 컨텍스트를 설명하는 기본 액세스 토큰 있습니다. 기본적으로 프로세스의 스레드가 보안 개체와 상호 작용할 때 시스템은 기본 토큰을 사용합니다. 그러나 스레드가 클라이언트를 가장하는 경우 가장 스레드에는 기본 액세스 토큰과 가장 토큰이 모두. 가장 토큰은 클라이언트의 보안 컨텍스트를 나타내며, 이 액세스 토큰은 가장 중에 액세스 검사에 사용되는 토큰입니다. 가장이 끝나면 스레드는 기본 액세스 토큰만 사용하도록 되돌려집니다.

OpenProcessToken 함수를 사용하여 프로세스의 기본 토큰에 대한 핸들을 가져올 수 있습니다. OpenThreadToken 함수를 사용하여 스레드의 가장 토큰에 대한 핸들을 가져옵니다.

액세스 토큰

위임 및 가장