次の方法で共有


ものまね

偽装とは、スレッドを所有するプロセスのコンテキストとは異なるセキュリティ コンテキストで実行するスレッドの機能です。 クライアントのセキュリティ コンテキストで実行されている場合、サーバーはクライアントをある程度 "is" にします。 サーバー スレッドは、クライアントの資格情報を表すアクセス トークンを使用して、クライアントがアクセスできるオブジェクトへのアクセスを取得します。

偽装の主な理由は、クライアントの ID に対してアクセス チェックを実行するためです。 アクセス チェックにクライアントの ID を使用すると、クライアントが実行するアクセス許可に応じて、アクセスが制限または拡張される可能性があります。 たとえば、ファイル サーバーに機密情報を含むファイルがあり、これらの各ファイルが ACL によって保護されるとします。 クライアントがこれらのファイル内の情報への不正アクセスを取得するのを防ぐために、サーバーはファイルにアクセスする前にクライアントを偽装できます。

偽装用のアクセス トークン

アクセス トークンは、プロセスまたはスレッドのセキュリティ コンテキストを記述するオブジェクトです。 ユーザー アカウントの ID と、ユーザー アカウントで使用できる権限のサブセットを含む情報を提供します。 すべてのプロセスには、プロセスに関連付けられているユーザー アカウントのセキュリティ コンテキストを記述する プライマリ アクセス トークン があります。 既定では、プロセスのスレッドがセキュリティ保護可能なオブジェクトと対話するときに、システムはプライマリ トークンを使用します。 ただし、スレッドがクライアントを偽装すると、偽装スレッドにはプライマリ アクセス トークンと 偽装トークンの両方が。 偽装トークンはクライアントのセキュリティ コンテキストを表し、このアクセス トークンは偽装時のアクセス チェックに使用されます。 偽装が完了すると、スレッドはプライマリ アクセス トークンのみを使用するように戻ります。

OpenProcessToken 関数を使用して、プロセスのプライマリ トークンへのハンドルを取得できます。 OpenThreadToken 関数を使用して、スレッドの偽装トークンへのハンドルを取得します。

アクセス トークンの

委任と偽装の