Délégation et emprunt d’identité
Dans les scénarios client/serveur, il est courant qu’un serveur appelle un autre serveur pour accomplir une tâche au nom d’un client. La situation où un serveur est autorisé à agir pour le compte d’un client est appelée délégation.
D’un point de vue de la sécurité, deux problèmes se posent concernant la délégation :
- Que doit être autorisé à faire le serveur lorsqu’il agit pour le compte du client ?
- Quelle identité est présentée par le serveur lorsqu’il appelle d’autres serveurs pour le compte d’un client ?
Pour résoudre ces problèmes, COM fournit les fonctionnalités suivantes. Le client peut définir un niveau d’emprunt d’identité qui détermine dans quelle mesure le serveur sera en mesure d’agir en tant que client. Si le client accorde suffisamment d’autorité au serveur, celui-ci peut emprunter l’identité (faire semblant d’être) le client. Lors de l’emprunt d’identité du client, le serveur n’a accès qu’aux objets ou ressources que le client est autorisé à utiliser. Le serveur, agissant en tant que client, peut également activer le masquage pour masquer sa propre identité et projeter l’identité du client dans les appels à d’autres composants COM.
Considérez le scénario illustré par la figure précédente, où A et B sont des processus sur un ordinateur différent de C. Traiter les appels B et B appelle C. Le client A définit le niveau d’emprunt d’identité. B définit la fonctionnalité de masage. Si A définit un niveau d’emprunt d’identité qui autorise l’emprunt d’identité, B peut emprunter l’identité A lors de l’appel de C au nom de A. L’identité présentée pour traiter C sera l’identité de A ou l’identité de B, selon que le masquant a été activé ou non par B. Si le masage est activé, l’identité présentée pour traiter C sera celle de A. Si le masage n’est pas activé, l’identité de B est présentée à C.
Pour plus d'informations, voir les rubriques suivantes :