Share via


Credenziali di autenticazione client

Ogni client autenticato deve fornire le credenziali di autenticazione al server. In RPC il client archivia le credenziali di autenticazione nell'associazione tra il client e il server. A tale scopo, il client chiama RpcBindingSetAuthInfo o RpcBindingSetAuthInfoEx.

Esistono due tipi di credenziali, impliciti ed espliciti:

  • Le credenziali esplicite esistono quando il client fornisce nome utente, password e dominio.
  • Le credenziali implicite esistono quando il client usa le credenziali dal thread o dal token di elaborazione che chiama le funzioni RpcBindingSetAuthInfo o RpcBindingSetAuthInfoEx .

I client devono evitare di fornire credenziali esplicite perché l'archiviazione, la modifica e il recupero di una password utente possono introdurre una vulnerabilità di sicurezza in un sistema distribuito se vengono usate credenziali esplicite.

Per usare le credenziali implicite, il client chiama RpcBindingSetAuthInfo(Ex). Il sistema di sicurezza e RPC ottengono le credenziali dal thread o dal token di elaborazione da usare nella sessione di autenticazione.

Se il client usa credenziali esplicite, il quinto parametro di queste due funzioni è di tipo RPC_AUTH_IDENTITY_HANDLE. Si tratta di un tipo flessibile che rappresenta un puntatore a una struttura di dati. Il contenuto della struttura dei dati può essere diverso da ogni servizio di autenticazione. Attualmente, i provider di servizi di sicurezza supportati da RPC richiedono che il set di applicazioni RPC_AUTH_IDENTITY_HANDLE punti a una struttura SEC_WINNT_AUTH_IDENTITY . La struttura SEC_WINNT_AUTH_IDENTITY contiene campi per un nome utente, un dominio e una password.