Udostępnij za pośrednictwem


Personifikacja klienta

Personifikacja jest przydatna w środowisku przetwarzania rozproszonego, gdy serwery muszą przekazywać żądania klientów do innych procesów serwera lub do systemu operacyjnego. W takim przypadku serwer personifikuje kontekst zabezpieczeń klienta. Inne procesy serwera mogą następnie obsługiwać żądanie tak, jakby oryginalny klient go wykonał.

serwer personifikuje klienta wywołującego podczas wykonywania kolejnych wywołań w imieniu klienta

Na przykład klient wysyła żądanie do serwera A. Jeśli serwer A musi wysłać zapytanie do serwera B, aby ukończyć żądanie, serwer A personifikuje kontekst zabezpieczeń klienta i wysyła żądanie do serwera B w imieniu klienta. Serwer B używa kontekstu zabezpieczeń oryginalnego klienta, a nie tożsamości zabezpieczeń serwera A, aby określić, czy wykonać zadanie.

Serwer wywołuje RpcImpersonateClient zastąpić zabezpieczenia wątku serwera kontekstem zabezpieczeń klienta. Po zakończeniu zadania serwer wywołuje RpcRevertToSelf lub RpcRevertToSelfEx w celu przywrócenia kontekstu zabezpieczeń zdefiniowanego dla wątku serwera.

Po powiązaniu klient może określić informacje o jakości usług dotyczące zabezpieczeń, które określają, w jaki sposób serwer może personifikować klienta. Na przykład jedno z ustawień umożliwia klientowi określenie, że serwer nie może go personifikować. Aby uzyskać więcej informacji, zobacz Quality of Service.

Możliwość wywoływania innych serwerów podczas personifikacji oryginalnego klienta jest nazywana delegowaniem . Gdy delegowanie jest używane, serwer personifikujący klienta może wywołać inny serwer i może wykonywać wywołania sieciowe przy użyciu poświadczeń klienta. Oznacza to, że z perspektywy drugiego serwera żądania pochodzące z pierwszego serwera są nie do odróżnienia od żądań pochodzących z klienta. Nie wszyscy dostawcy zabezpieczeń obsługują delegowanie. Firma Microsoft dostarcza tylko jednego dostawcę zabezpieczeń, który obsługuje delegowanie: Kerberos.

Delegowanie może być niebezpieczną funkcją ze względu na uprawnienia, które klient daje serwerowi podczas zdalnego wywołania procedury. Dlatego protokół Kerberos umożliwia wywołania z poziomem personifikacji delegowania tylko wtedy, gdy zażądano wzajemnego uwierzytelniania. Administratorzy domeny mogą ograniczyć komputery, na których są wykonywane wywołania z poziomem personifikacji delegowania, aby zapobiec nie podejrzewaniu, że klienci nie mogą wykonywać wywołań do serwerów, które mogą nadużywać swoich poświadczeń.

Istnieje jeden wyjątek od reguły delegowania: wywołania używające ncalrpc. Gdy te wywołania są wykonywane, serwer otrzymuje uprawnienia delegowania, nawet jeśli określono poziom personifikacji personifikacji. Oznacza to, że serwer może wywoływać inne serwery w imieniu klienta. Działa to tylko w przypadku jednego połączenia zdalnego. Jeśli na przykład klient A wywołuje moduł równoważenia obciążenia serwera lokalnego przy użyciu ncalrpc moduł równoważenia obciążenia serwera lokalnego może personifikować i wywoływać zdalny serwer RB. Funkcja RB będzie mogła działać w imieniu klienta A, ale tylko na komputerze zdalnym, na którym działa usługa RB. Nie może wykonać innego wywołania sieciowego do komputera zdalnego C, chyba że moduł równoważenia obciążenia określił poziom personifikacji delegata podczas wywoływania RB.

Nuta

Termin personifikacji reprezentuje dwa nakładające się znaczenia. Pierwszym znaczeniem personifikacji jest ogólny proces działania w imieniu klienta. Drugie znaczenie to określony poziom personifikacji nazywany personifikacją. Kontekst tekstu zwykle wyjaśnia znaczenie.