Fonction SeImpersonateClientEx (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 doit emprunter l’identité de l’utilisateur. S’il n’est pas spécifié, le thread appelant est utilisé.
Valeur retournée
SeImpersonateClientEx retourne une valeur NTSTATUS appropriée, telle que :
Code de retour | Description |
---|---|
|
La tentative d’emprunt d’identité a réussi. |
|
Le thread spécifié dans le paramètre ServerThread ne disposait pas de droits d’accès suffisants pour emprunter l’identité de l’utilisateur dont le contexte client de sécurité est spécifié dans le paramètre ClientContext . |
|
SeImpersonateClientEx a 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 qu’un thread emprunte 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 des privilèges d’un thread utilisateur non approuvé (prendre le thread d’un utilisateur et emprunter l’identité de LocalSystem, par exemple). Si un thread d’utilisateur non approuvé a son privilège déclenché, l’utilisateur peut récupérer le jeton de thread une fois qu’il a été élevé et compromettre la sécurité de l’ensemble du système.
Dans les cas où un état de privilège supérieur 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 amener un thread de serveur à emprunter l’identité d’un client.
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.
Configuration requise
Condition requise | Valeur |
---|---|
Client minimal pris en charge | Windows 2000 |
Plateforme cible | Universal |
En-tête | ntifs.h (inclure Ntifs.h) |
Bibliothèque | NtosKrnl.lib |
DLL | NtosKrnl.exe |
IRQL | PASSIVE_LEVEL |