Condividi tramite


Impostazione della sicurezza a livello di proxy di interfaccia

A volte il client necessita di un controllo granulare sulla sicurezza sulle chiamate a interfacce specifiche. Ad esempio, la sicurezza potrebbe essere impostata a un livello basso per il processo, ma le chiamate a una particolare interfaccia potrebbero richiedere un livello di autenticazione superiore, ad esempio la crittografia. I metodi dell'interfaccia IClientSecurity consentono al client di modificare le impostazioni di sicurezza associate alle chiamate a una particolare interfaccia controllando le impostazioni di sicurezza a livello di proxy dell'interfaccia.

Il client può eseguire una query su un oggetto esistente per IClientSecurity e quindi chiamare il metodo IClientSecurity::QueryBlanket per scoprire quali sono le impostazioni di sicurezza correnti per un proxy di interfaccia specifico. Il metodo IClientSecurity::SetBlanket può essere usato per modificare le impostazioni di sicurezza per un singolo proxy di interfaccia nell'oggetto prima di chiamare uno dei metodi dell'interfaccia. Le nuove impostazioni si applicano a qualsiasi chiamante futuro di questa particolare interfaccia. Il metodo IClientSecurity::CopyProxy consente al client di copiare un proxy di interfaccia in modo che le chiamate successive a SetBlanket nella copia non influiscano sui chiamanti del proxy originale.

SetBlanket viene comunemente usato per aumentare il livello di autenticazione per un proxy di interfaccia specifico a un livello di protezione di sicurezza superiore. In alcune situazioni, tuttavia, potrebbe anche essere utile abbassare il livello di autenticazione per un proxy di interfaccia specifico. Si supponga, ad esempio, che il livello di autenticazione predefinito per il processo sia un valore diverso da RPC_C_AUTHN_LEVEL_NONE e che il client e il server si trovino in domini separati che non si considerano attendibili tra loro. In questo caso, le chiamate al server avranno esito negativo a meno che il client non chiami SetBlanket per abbassare il livello di autenticazione a RPC_C_AUTHN_LEVEL_NONE.

I client che usano l'implementazione predefinita di IClientSecurity forniti dal gestore proxy possono chiamare le funzioni helper CoQueryProxyBlanket, CoSetProxyBlanket e CoCopyProxy anziché chiamare direttamente i metodi IClientSecurity. Le funzioni helper semplificano il codice, ma sono leggermente meno efficienti rispetto alla chiamata diretta dei metodi IClientSecurity corrispondenti.

L'interfaccia IClientSecurity viene implementata localmente per il client da gestione proxy. Alcuni oggetti di marshalling personalizzati potrebbero non supportare IClientSecurity.

IClientSecurity funziona con tutti i servizi di autenticazione supportati (attualmente NTLMSSP, Schannel e il protocollo Kerberos v5).

Impostazione della sicurezza per le applicazioni COM