Credenciales de autenticación de cliente
Cada cliente autenticado debe proporcionar credenciales de autenticación al servidor. En RPC, el cliente almacena sus credenciales de autenticación en el enlace entre el cliente y el servidor. Para ello, el cliente llama a RpcBindingSetAuthInfo o RpcBindingSetAuthInfoEx.
Hay dos tipos de credenciales, implícitas y explícitas:
- Existen credenciales explícitas cuando el cliente proporciona el nombre de usuario, la contraseña y el dominio.
- Existen credenciales implícitas cuando el cliente usa credenciales del subproceso o token de proceso que llama a las funciones RpcBindingSetAuthInfo o RpcBindingSetAuthInfoEx .
Los clientes deben abstenerse de proporcionar credenciales explícitas porque almacenar, manipular y recuperar una contraseña de usuario puede introducir una vulnerabilidad de seguridad en un sistema distribuido si se usan credenciales explícitas.
Para usar credenciales implícitas, el cliente llama a RpcBindingSetAuthInfo(Ex). El sistema de seguridad y RPC obtienen credenciales del subproceso o token de proceso para su uso en la sesión de autenticación.
Si el cliente usa credenciales explícitas, el quinto parámetro de estas dos funciones es de tipo RPC_AUTH_IDENTITY_HANDLE. Se trata de un tipo flexible que es un puntero a una estructura de datos. El contenido de la estructura de datos puede diferir con cada servicio de autenticación. Actualmente, los SSP que admite RPC requieren que el conjunto de RPC_AUTH_IDENTITY_HANDLE de la aplicación apunte a una estructura de SEC_WINNT_AUTH_IDENTITY . La estructura SEC_WINNT_AUTH_IDENTITY contiene campos para un nombre de usuario, un dominio y una contraseña.