Emprunt d’identité du client (autorisation)

L' emprunt d’identité est la capacité d’un thread à s’exécuter en utilisant des informations de sécurité différentes de celles du processus propriétaire du thread. En règle générale, un thread dans une application serveur emprunte l’identité d’un client. Cela permet au thread de serveur d’agir au nom de ce client pour accéder aux objets sur le serveur ou valider l’accès aux propres objets du client.

l’API Microsoft Windows fournit les fonctions suivantes pour commencer un emprunt d’identité :

  • Une application de serveur DDE peut appeler la fonction DdeImpersonateClient pour emprunter l’identité d’un client.
  • Un serveur de canaux nommés peut appeler la fonction ImpersonateNamedPipeClient .
  • Vous pouvez appeler la fonction ImpersonateLoggedOnUser pour emprunter l’identité du contexte de sécurité du jeton d’accèsd’un utilisateur connecté.
  • La fonction ImpersonateSelf permet à un thread de générer une copie de son propre jeton d’accès. Cela est utile quand une application doit modifier le contexte de sécurité d’un thread unique. Par exemple, un seul thread d’un processus doit parfois activer un privilège.
  • Vous pouvez appeler la fonction SetThreadToken pour faire en sorte que le thread cible s’exécute dans le contexte de sécurité d’un jeton d’emprunt d’identitéspécifié.
  • Une application serveur d’appel de procédure distante (RPC) Microsoft peut appeler la fonction RpcImpersonateClient pour emprunter l’identité d’un client.
  • Un package de sécurité ou un serveur d’applications peut appeler la fonction ImpersonateSecurityContext pour emprunter l’identité d’un client.

Pour la plupart de ces emprunts d’identité, le thread d’emprunt d’identité peut revenir à son propre contexte de sécurité en appelant la fonction RevertToSelf . L’exception est l’emprunt d’identité RPC, dans lequel l’application serveur RPC appelle RpcRevertToSelf ou RpcRevertToSelfEx pour rétablir son propre contexte de sécurité.