Remarque
L’accès à cette page nécessite une autorisation. Vous pouvez essayer de vous connecter ou de modifier des répertoires.
L’accès à cette page nécessite une autorisation. Vous pouvez essayer de modifier des répertoires.
L’emprunt d’identité est utile dans un environnement informatique distribué lorsque les serveurs doivent transmettre des demandes client à d’autres processus de serveur ou au système d’exploitation. Dans ce cas, un serveur emprunte l’identité du contexte de sécurité du client. D’autres processus serveur peuvent ensuite gérer la requête comme si le client d’origine l’a effectuée.
Par exemple, un client envoie une demande au serveur A. Si le serveur A doit interroger le serveur B pour terminer la demande, le serveur A emprunte l’identité du contexte de sécurité du client et effectue la demande au serveur B pour le compte du client. Le serveur B utilise le contexte de sécurité du client d’origine, au lieu de l’identité de sécurité pour le serveur A, pour déterminer s’il faut effectuer la tâche.
Le serveur appelle RpcImpersonateClient pour remplacer la sécurité du thread de serveur avec le contexte de sécurité du client. Une fois la tâche terminée, le serveur appelle RpcRevertToSelf ou RpcRevertToSelfEx pour restaurer le contexte de sécurité défini pour le thread de serveur.
Lors de la liaison, le client peut spécifier des informations de qualité de service sur la sécurité qui spécifient la façon dont le serveur peut emprunter l’identité du client. Par exemple, l’un des paramètres permet au client de spécifier que le serveur n’est pas autorisé à emprunter l’identité. Pour plus d’informations, consultez qualité de service.
La possibilité d’appeler d’autres serveurs lors de l’emprunt d’identité du client d’origine est appelée délégation. Lorsque la délégation est utilisée, un serveur qui emprunte l’identité d’un client peut appeler un autre serveur et effectuer des appels réseau avec les informations d’identification du client. Autrement dit, du point de vue du deuxième serveur, les requêtes provenant du premier serveur sont indistinguishables des requêtes provenant du client. Tous les fournisseurs de sécurité ne prennent pas en charge la délégation. Microsoft ne fournit qu’un seul fournisseur de sécurité qui prend en charge la délégation : Kerberos.
La délégation peut être une fonctionnalité dangereuse en raison des privilèges que le client donne au serveur pendant un appel de procédure distante. C’est pourquoi Kerberos autorise les appels avec le niveau de délégation d’emprunt d’identité uniquement si l’authentification mutuelle est demandée. Les administrateurs de domaine peuvent limiter les ordinateurs auxquels les appels avec le niveau d’emprunt d’identité de délégation sont effectués pour empêcher les clients d’effectuer des appels à des serveurs susceptibles d’abuser de leurs informations d’identification.
Une exception à la règle de délégation existe : les appels utilisant ncalrpc. Lorsque ces appels sont effectués, le serveur obtient des droits de délégation, même si un niveau d’emprunt d’identité est spécifié. Autrement dit, un serveur peut appeler d’autres serveurs pour le compte du client. Cela fonctionne uniquement pour un appel distant. Par exemple, si le client A appelle le serveur local LB à l’aide de ncalrpc LB de serveur local peut emprunter l’identité et appeler le serveur distant RB. RB pourra agir au nom du client A, mais uniquement sur l’ordinateur distant sur lequel RB s’exécute. Il ne peut pas effectuer un autre appel réseau à l’ordinateur distant C, sauf si LB a spécifié un niveau d’emprunt d’identité de délégué lorsqu’il a appelé RB.
Note
Le terme emprunt d’identité représente deux significations qui se chevauchent. La première signification de l’emprunt d’identité est le processus général d’agir au nom d’un client. La deuxième signification est le niveau d’emprunt d’identité spécifique appelé emprunt d’identité. Le contexte du texte précise généralement la signification.