Share via


Définition de la sécurité au niveau du proxy d’interface

Parfois, le client a besoin d’un contrôle précis de la sécurité sur les appels à des interfaces particulières. Par exemple, la sécurité peut être définie à un niveau bas pour le processus, mais les appels à une interface particulière peuvent nécessiter un niveau d’authentification plus élevé, tel que le chiffrement. Les méthodes de l’interface IClientSecurity permettent au client de modifier les paramètres de sécurité associés aux appels à une interface particulière en contrôlant les paramètres de sécurité au niveau du proxy d’interface.

Le client peut interroger un objet existant pour IClientSecurity , puis appeler la méthode IClientSecurity::QueryBlanket pour savoir quels sont les paramètres de sécurité actuels pour un proxy d’interface particulier. La méthode IClientSecurity::SetBlanket peut être utilisée pour modifier les paramètres de sécurité d’un proxy d’interface individuel sur l’objet avant d’appeler l’une des méthodes de l’interface. Les nouveaux paramètres s’appliquent à tous les futurs appelants de cette interface particulière. La méthode IClientSecurity::CopyProxy permet au client de copier un proxy d’interface afin que les appels ultérieurs à SetBlanket sur la copie n’affectent pas les appelants du proxy d’origine.

SetBlanket est couramment utilisé pour élever le niveau d’authentification d’un proxy d’interface particulier à un niveau plus élevé de protection de sécurité. Toutefois, dans certaines situations, il peut également être utile de réduire le niveau d’authentification pour un proxy d’interface particulier. Par instance, supposons que le niveau d’authentification par défaut pour le processus soit autre que RPC_C_AUTHN_LEVEL_NONE et que le client et le serveur se trouvent dans des domaines distincts qui ne se font pas confiance. Dans ce cas, les appels au serveur échouent, sauf si le client appelle SetBlanket pour abaisser le niveau d’authentification à RPC_C_AUTHN_LEVEL_NONE.

Les clients utilisant l’implémentation par défaut d’IClientSecurity fournie par le gestionnaire de proxys peuvent appeler les fonctions d’assistance CoQueryProxyBlanket, CoSetProxyBlanket et CoCopyProxy au lieu d’appeler directement les méthodes IClientSecurity . Les fonctions d’assistance simplifient le code, mais sont légèrement moins efficaces que l’appel direct des méthodes IClientSecurity correspondantes.

L’interface IClientSecurity est implémentée localement pour le client par le gestionnaire de proxy. Certains objets marshalés personnalisés peuvent ne pas prendre en charge IClientSecurity.

IClientSecurity fonctionne avec tous les services d’authentification pris en charge (actuellement NTLMSSP, Schannel et le protocole Kerberos v5).

Définition de la sécurité pour les applications COM