Udostępnij za pośrednictwem


Personifikacja nazwanego klienta potoku

Personifikacja to zdolność wątku do działania w kontekście zabezpieczeń innym niż kontekst procesu, który jest jego właścicielem. Personifikacja umożliwia wątkowi serwera wykonywanie akcji w imieniu klienta, ale w granicach kontekstu zabezpieczeń klienta. Klient zazwyczaj ma nieco mniejszy poziom praw dostępu. Aby uzyskać więcej informacji, zobacz Podszywanie się.

Wątek serwera nazwanych potoków może wywołać funkcję ImpersonateNamedPipeClient, aby przyjąć token dostępu użytkownika podłączonego do końcowej strony potoku klienta. Na przykład nazwany serwer potoku może zapewnić dostęp do bazy danych lub systemu plików, do którego serwer potoku ma uprzywilejowany dostęp. Gdy klient potoku wysyła żądanie do serwera, serwer impersonuje klienta i próbuje uzyskać dostęp do chronionej bazy danych. Następnie system udziela lub odmawia dostępu serwera na podstawie poziomu zabezpieczeń klienta. Po zakończeniu działania serwera używa funkcji RevertToSelf w celu przywrócenia oryginalnego tokenu zabezpieczającego.

poziom personifikacji określa operacje, które serwer może wykonać podczas personifikacji klienta. Domyślnie serwer personifikuje się na poziomie personifikacji zabezpieczeńImpersonation. Jednak gdy klient wywołuje funkcję CreateFile, aby otworzyć uchwyt na końcu potoku klienta, klient może użyć flagi SECURITY_SQOS_PRESENT do kontrolowania poziomu personifikacji serwera.