Udostępnij za pośrednictwem


Jakość usług (RPC)

Programy klienckie mogą używać funkcji RpcBindingSetAuthInfoEx zamiast funkcji RpcBindingSetAuthInfo, aby utworzyć uwierzytelnione powiązanie. Jeśli tak, przekazują wskaźnik do struktury RPC_SECURITY_QOS jako końcowy parametr RpcBindingSetAuthInfoEx. Ta struktura zawiera informacje o jakości usług. Programy klienckie mogą również określać śledzenie tożsamości i wybierać typ personifikacji.

Użyj Capabilities składowej struktury RPC_SECURITY_QOS, aby ustawić, które części aplikacji klienta/serwera są uwierzytelniane. W przypadku wybrania RPC_C_QOS_CAPABILITIES_DEFAULT biblioteka czasu wykonywania RPC uwierzytelnia klienta lub serwera zgodnie z wartością domyślną dostawcy usług udostępnionych. Domyślnie dostawcy SSP protokołu Kerberos uwierzytelniają klienta i serwer. Ustawieniem domyślnym dla wszystkich innych dostawców SSPs, które udostępnia firma Microsoft, jest uwierzytelnianie klienta na serwerze, ale nie uwierzytelnianie serwera na kliencie.

Jeśli klient i serwer powinny zawsze uwierzytelniać się nawzajem, ustaw możliwości elementu członkowskiego struktury RPC_SECURITY_QOS na RPC_C_QOS_CAPABILITIES_MUTUAL_AUTH. Niektórzy dostawcy zabezpieczeń mogą nie obsługiwać wzajemnego uwierzytelniania. Jeśli RPC_C_QOS_CAPABILITIES_MUTUAL_AUTH jest określona dla takich dostawców zabezpieczeń, zwracany jest błąd podczas wykonywania zdalnego wywołania procedury. W przypadku korzystania z dostawcy SSP SCHANNEL można również ustawić możliwości do RPC_C_QOS_CAPABILITIES_ANY_AUTHORITY. Ta stała określa, że dostawca usług udostępnionych weryfikuje zdalne wywołanie procedury, nawet jeśli urząd certyfikacji, który wystawił certyfikat uwierzytelniania klienta, nie znajduje się w głównym magazynie certyfikatów dostawcy usług udostępnionych. Domyślną wartością jest odrzucenie certyfikatu, jeśli dostawcy usług udostępnionych nie rozpoznają urzędu certyfikacji. Urząd certyfikacji jest niezależną firmą lub organizacją, taką jak VeriSign, która wystawia certyfikaty uwierzytelniania.

Aplikacje mogą również ustawić śledzenie tożsamości używane przez bibliotekę czasu wykonywania RPC. Programy zazwyczaj używają śledzenia tożsamości statycznych. W przypadku śledzenia statycznego poświadczenia klienta są ustawiane, gdy wywołuje funkcję RpcBindingSetAuthInfo. Biblioteka czasu wykonywania RPC następnie używa tych poświadczeń dla wszystkich wywołań RPC w powiązaniu, niezależnie od zmian w tożsamości wątku wywołującego lub procesu wywoływania. Aplikacje mogą również wybrać dynamiczne śledzenie tożsamości. Dynamiczne śledzenie tożsamości instruuje bibliotekę czasu wykonywania RPC, aby korzystała z poświadczeń wątku wywołującego w momencie każdego wywołania, a nie dojścia powiązania. Domyślne śledzenie tożsamości jest statyczne.

Jeśli tożsamość klienta nie ulegnie zmianie, śledzenie tożsamości statycznej może mieć lepszą charakterystykę wydajności i może zaoszczędzić czas wykonywania RPC przed sprawdzeniem za każdym razem, czy tożsamość wątku wywołującego jest taka sama jak tożsamość nadana systemowi zabezpieczeń. Jeśli tożsamość wątku wywołującego może ulec zmianie między wywołaniami, a serwer musi rozpoznać te zmiany, najlepiej jest określić dynamiczne śledzenie tożsamości — czas wykonywania RPC cicho i efektywnie śledzi tożsamość, a jeśli tożsamość ulegnie zmianie, zarządza nią w Twoim imieniu.

Nuta

W przypadku wywołania ncalrpc, śledzenie tożsamości statycznych i dynamicznych ma różne cechy wydajności i w zależności od okoliczności może być szybsze.

 

W ramach specyfikacji QOS program klienta może również ustawić typ personifikacji, który program serwera może wykonać w jego imieniu. Aby uzyskać więcej informacji, zobacz Personifikacja klienta.

Pole numer wersji struktury RPC_SECURITY_QOS powinno być zawsze ustawione na RPC_C_SECURITY_QOS_VERSION.