SeImpersonateClientEx, fonction (ntifs.h)
La routine SeImpersonateClientEx entraîne l’emprunt d’identité d’un utilisateur par un thread.
NTSTATUS SeImpersonateClientEx(
[in] PSECURITY_CLIENT_CONTEXT ClientContext,
[in, optional] PETHREAD ServerThread
);
[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é.
SeImpersonateClientEx retourne une valeur NTSTATUS appropriée, par exemple :
Retourner le code | Description |
---|---|
|
La tentative d’emprunt d’identité a réussi. |
|
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. |
|
SeImpersonateClientEx rencontré un échec d’allocation de pool lors de l’allocation de mémoire pour la structure d’informations d’emprunt d’identité. |
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.
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 |