Udostępnij za pośrednictwem


Delegowanie i personifikacja

W scenariuszach klienta/serwera często jeden serwer wywołuje inny serwer w celu wykonania określonego zadania w imieniu klienta. Sytuacja, w której serwer otrzymuje uprawnienia do działania w imieniu klienta, jest nazywany delegowaniem .

Z punktu widzenia zabezpieczeń pojawiają się dwa problemy dotyczące delegowania:

  • Co serwer powinien być dozwolony w przypadku działania w imieniu klienta?
  • Jaka tożsamość jest prezentowana przez serwer, gdy wywołuje inne serwery w imieniu klienta?

Aby rozwiązać te problemy, com udostępnia następujące funkcje. Klient może ustawić poziom personifikacji , który określa, w jakim zakresie serwer będzie mógł działać jako klient. Jeśli klient udziela wystarczającej ilości uprawnień do serwera, serwer może personifikować (udawać) klienta. Podczas personifikacji klienta serwer ma dostęp tylko do tych obiektów lub zasobów, których klient ma uprawnienia do użycia. Serwer, działający jako klient, może również włączyć maskowanie maskować własną tożsamość i projektować tożsamość klienta w wywołaniach do innych składników COM.

Diagram pokazujący, jak serwer działający jako klient może włączyć klonowanie.

Rozważmy scenariusz przedstawiony na powyższym rysunku, w którym procesy A i B znajdują się na innej maszynie niż C. Proces A wywołuje B, a B wywołuje C. Klient A ustawia poziom personifikacji. B ustawia możliwości maskowania. Jeśli A ustawia poziom personifikacji, który zezwala na personifikację, B może personifikować A podczas wywoływania języka C w imieniu A. Tożsamość przedstawiona do przetworzenia języka C będzie tożsamością A lub tożsamością B w zależności od tego, czy klonowanie zostało włączone przez B. Jeśli klonowanie jest włączone, tożsamość przedstawiona do przetwarzania języka C będzie mieć wartość A. Jeśli klonowanie nie jest włączone, tożsamość B zostanie wyświetlona C.

Aby uzyskać więcej informacji, zobacz następujące tematy: