Dela via


Delegering och personifiering

I klient-/serverscenarier är det vanligt att en server anropar en annan server för att utföra en uppgift åt en klient. Situationen där en server får behörighet att agera för en klients räkning kallas delegering.

Ur säkerhetssynpunkt uppstår två problem med delegering:

  • Vad ska servern tillåtas göra när den agerar för klientens räkning?
  • Vilken identitet visas av servern när den anropar andra servrar för en klients räkning?

För att hantera dessa problem tillhandahåller COM följande funktioner. Klienten kan ange en personifieringsnivå som avgör i vilken utsträckning servern kommer att kunna fungera som klient. Om klienten beviljar tillräckligt med behörighet till servern kan servern personifiera (låtsas vara) klienten. När du personifierar klienten ges servern endast åtkomst till de objekt eller resurser som klienten har behörighet att använda. Servern, som fungerar som en klient, kan också göra det möjligt för att dölja för att maskera sin egen identitet och projicera klientens identitet i anrop till andra COM-komponenter.

diagram som visar hur servern som fungerar som klient kan aktivera kamouflage.

Tänk på scenariot som illustreras av föregående bild, där A och B är processer på en annan dator än C. Process A anropar B och B anropar C. Klient A anger personifieringsnivån. B ställer in kamouflagefunktionen. Om A anger en personifieringsnivå som tillåter personifiering kan B personifiera A när du anropar C för A:s räkning. Identiteten som presenteras för att bearbeta C är antingen A:s identitet eller B:s identitet, beroende på om kamouflage har aktiverats av B. Om kamouflage är aktiverat blir identiteten som presenteras för att bearbeta C den för A. Om kamouflage inte är aktiverat visas B:s identitet för C.

Mer information finns i följande avsnitt: