Poświadczenia uwierzytelniania klienta
Każdy uwierzytelniony klient musi podać poświadczenia uwierzytelniania na serwerze. W obszarze RPC klient przechowuje swoje poświadczenia uwierzytelniania w powiązaniu między klientem a serwerem. W tym celu klient wywołuje RpcBindingSetAuthInfo lub RpcBindingSetAuthInfoEx.
Istnieją dwa typy poświadczeń — niejawne i jawne:
- Jawne poświadczenia istnieją, gdy klient dostarcza nazwę użytkownika, hasło i domenę.
- Niejawne poświadczenia istnieją, gdy klient używa poświadczeń z tokenu wątku lub procesu wywołującego funkcje RpcBindingSetAuthInfo lub RpcBindingSetAuthInfo Ex.
Klienci powinni powstrzymać się od podawania jawnych poświadczeń, ponieważ przechowywanie, manipulowanie i pobieranie hasła użytkownika może wprowadzić lukę w zabezpieczeniach w systemie rozproszonym, jeśli są używane jawne poświadczenia.
Aby użyć poświadczeń niejawnych, klient wywołuje RpcBindingSetAuthInfo(Ex). System zabezpieczeń i RPC uzyskują poświadczenia z wątku lub tokenu procesu do użycia w sesji uwierzytelniania.
Jeśli klient używa jawnych poświadczeń, piąty parametr tych dwóch funkcji jest typu RPC_AUTH_IDENTITY_HANDLE. Jest to elastyczny typ, który jest wskaźnikiem do struktury danych. Zawartość struktury danych może się różnić od każdej usługi uwierzytelniania. Obecnie dostawcy SSP obsługiwani przez RPC wymagają, aby aplikacja RPC_AUTH_IDENTITY_HANDLE wskazywała strukturę SEC_WINNT_AUTH_IDENTITY. Struktura SEC_WINNT_AUTH_IDENTITY zawiera pola nazwy użytkownika, domeny i hasła.