Credenciais de Autenticação do Cliente
Cada cliente autenticado deve fornecer credenciais de autenticação para o servidor. Em RPC, o cliente armazena suas credenciais de autenticação na associação entre o cliente e o servidor. Para fazer isso, o cliente chama RpcBindingSetAuthInfo ou RpcBindingSetAuthInfoEx.
Há dois tipos de credenciais: implícitas e explícitas:
- Existem credenciais explícitas quando o cliente fornece nome de usuário, senha e domínio.
- As credenciais implícitas existem quando o cliente usa credenciais do thread ou token de processo que chama as funções RpcBindingSetAuthInfo ou RpcBindingSetAuthInfoEx .
Os clientes devem se abster de fornecer credenciais explícitas porque armazenar, manipular e recuperar uma senha de usuário pode introduzir uma vulnerabilidade de segurança em um sistema distribuído se credenciais explícitas forem usadas.
Para usar credenciais implícitas, o cliente chama RpcBindingSetAuthInfo(Ex). O sistema de segurança e o RPC obtêm credenciais do thread ou do token de processo para uso na sessão de autenticação.
Se o cliente usar credenciais explícitas, o quinto parâmetro dessas duas funções será do tipo RPC_AUTH_IDENTITY_HANDLE. Esse é um tipo flexível que é um ponteiro para uma estrutura de dados. O conteúdo da estrutura de dados pode ser diferente de cada serviço de autenticação. Atualmente, os SSPs aos quais o RPC dá suporte exigem que o conjunto de aplicativos RPC_AUTH_IDENTITY_HANDLE aponte para uma estrutura de SEC_WINNT_AUTH_IDENTITY . A estrutura SEC_WINNT_AUTH_IDENTITY contém campos para um nome de usuário, domínio e senha.