SeImpersonateClientEx, fonction (ntifs.h)

La routine SeImpersonateClientEx entraîne l’emprunt d’identité d’un utilisateur par un thread.

Syntaxe

NTSTATUS SeImpersonateClientEx(
  [in]           PSECURITY_CLIENT_CONTEXT ClientContext,
  [in, optional] PETHREAD                 ServerThread
);

Paramètres

[in] ClientContext

Pointeur vers le contexte client de sécurité de l’utilisateur.

[in, optional] ServerThread

Pointeur vers le thread qui consiste à emprunter l’identité de l’utilisateur. S’il n’est pas spécifié, le thread appelant est utilisé.

Valeur de retour

SeImpersonateClientEx retourne une valeur NTSTATUS appropriée, par exemple :

Retourner le code Description
STATUS_SUCCESS
La tentative d’emprunt d’identité a réussi.
STATUS_ACCESS_DENIED
Le thread spécifié dans paramètre ServerThread n’a pas suffisamment de droits d’accès pour emprunter l’identité de l’utilisateur dont le contexte client de sécurité est spécifié dans le paramètre ClientContext.
STATUS_NO_MEMORY
SeImpersonateClientEx rencontré un échec d’allocation de pool lors de l’allocation de mémoire pour la structure d’informations d’emprunt d’identité.

Remarques

SeImpersonateClientEx est utilisé pour amener un thread à emprunter l’identité d’un utilisateur. Le contexte de sécurité du client dans ClientContext est supposé être à jour.

Il est extrêmement dangereux de déclencher l’état de privilège d’un thread utilisateur non approuvé (prenez le thread d’un utilisateur et empruntez l’identité de LocalSystem, par exemple). Si un thread d’utilisateur non approuvé a eu son privilège déclenché, l’utilisateur peut récupérer le jeton de thread une fois qu’il a été élevé et subvertir la sécurité de l’ensemble du système.

Dans les cas où un état de privilège plus élevé est requis, la tâche doit être distribuée dans une file d’attente de travail où la tâche peut être gérée en toute sécurité par le thread de travail système. De cette façon, aucune emprunt d’identité n’est nécessaire.

Pour mettre fin à l’emprunt d’identité de l’utilisateur, appelez la routine SeStopImpersonatingClient.

La routine PsImpersonateClient peut être utilisée pour provoquer l’emprunt d’identité d’un client par un thread de serveur.

Pour plus d’informations sur la sécurité et le contrôle d’accès, consultez modèle de sécurité Windows pour les développeurs de pilotes et la documentation sur ces rubriques dans le Kit de développement logiciel (SDK) Windows.

Exigences

Exigence Valeur
client minimum pris en charge Windows 2000
plateforme cible Universel
d’en-tête ntifs.h (include Ntifs.h)
bibliothèque NtosKrnl.lib
DLL NtosKrnl.exe
IRQL PASSIVE_LEVEL

Voir aussi

PsImpersonateClient

SeCreateClientSecurity

SeCreateClientSecurityFromSubjectContext

SeStopImpersonatingClient