Delegatie en imitatie
In client-/serverscenario's is het gebruikelijk dat de ene server een andere server aanroept om een taak namens een client uit te voeren. De situatie waarin een server de bevoegdheid krijgt om namens een client te handelen, wordt delegeringgenoemd.
Vanuit een beveiligingsstandpunt ontstaan twee problemen met betrekking tot delegering:
- Wat moet de server doen wanneer deze namens de client handelt?
- Welke identiteit wordt door de server weergegeven wanneer deze andere servers aanroept namens een client?
Com biedt de volgende functionaliteit om deze problemen op te lossen. De client kan een imitatieniveau instellen die bepaalt in hoeverre de server als de client kan fungeren. Als de client voldoende autoriteit verleent aan de server, kan de server (doen alsof het) de client is. Bij het imiteren van de client krijgt de server alleen toegang tot die objecten of resources die de client mag gebruiken. De server, die als client fungeert, kan ook cloaking inschakelen om zijn eigen identiteit te maskeren en de identiteit van de client te projecteren in aanroepen naar andere COM-onderdelen.
Bekijk het scenario dat wordt geïllustreerd in de voorgaande afbeelding, waarbij A en B processen zijn op een andere computer dan C. Proces A-aanroepen B en B roept C aan. Client A stelt het imitatieniveau in. B stelt de cloaking-mogelijkheid in. Als A een imitatieniveau instelt dat imitatie toestaat, kan B A imiteren bij het aanroepen van C namens A. De identiteit die wordt gepresenteerd om C te verwerken, is de identiteit van A of B, afhankelijk van of cloaking is ingeschakeld door B. Als cloaking is ingeschakeld, is de identiteit die wordt gepresenteerd voor proces C dat van A. Als cloaking niet is ingeschakeld, wordt de identiteit van B aan C gepresenteerd.
Zie de volgende onderwerpen voor meer informatie: