Partager via


Qualité de service (RPC)

Les programmes clients peuvent utiliser la fonction RpcBindingSetAuthInfoEx plutôt que la fonction RpcBindingSetAuthInfo pour créer une liaison authentifiée. Si c’est le cas, ils passent un pointeur vers une structure RPC_SECURITY_QOS comme paramètre final de RpcBindingSetAuthInfoEx. Cette structure contient des informations sur la qualité du service. Les programmes clients peuvent également spécifier le suivi des identités et sélectionner le type d’emprunt d’identité.

Utilisez les fonctionnalités membre de la structure RPC_SECURITY_QOS pour définir les parties de l’application cliente/serveur authentifiées. Si RPC_C_QOS_CAPABILITIES_DEFAULT est sélectionné, la bibliothèque d’exécution RPC authentifie le client ou le serveur en fonction de la valeur par défaut du fournisseur de services partagés. Par défaut, le fournisseur SSP du protocole Kerberos authentifie le client et le serveur. La valeur par défaut de tous les autres fournisseurs SSP que Microsoft fournit consiste à authentifier le client auprès du serveur, mais pas à authentifier le serveur auprès du client.

Si le client et le serveur doivent toujours s’authentifier mutuellement, définissez les fonctionnalités membre de la structure RPC_SECURITY_QOS sur RPC_C_QOS_CAPABILITIES_MUTUAL_AUTH. Certains fournisseurs de sécurité peuvent ne pas prendre en charge l’authentification mutuelle. Si RPC_C_QOS_CAPABILITIES_MUTUAL_AUTH est spécifié pour ces fournisseurs de sécurité, une erreur est retournée lorsqu’un appel de procédure distante est effectué. Lorsque vous utilisez le SSP SCHANNEL, il est possible de définir également les fonctionnalités membre sur RPC_C_QOS_CAPABILITIES_ANY_AUTHORITY. Cette constante spécifie que le fournisseur de services partagés valide l’appel de procédure distante même si l’autorité de certification qui a émis le certificat d’authentification du client n’est pas dans le magasin de certificats racine du fournisseur de services partagés. La valeur par défaut consiste à rejeter le certificat si le fournisseur de services partagés ne reconnaît pas l’autorité de certification. L’autorité de certification est une entreprise ou une organisation indépendante, telle que VeriSign, qui émet des certificats d’authentification.

Les applications peuvent également définir le suivi des identités que la bibliothèque d’exécution RPC utilise. Les programmes utilisent généralement de suivi des identités statiques. Avec le suivi statique, les informations d’identification du client sont définies lorsqu’elle appelle la fonction RpcBindingSetAuthInfo. La bibliothèque d’exécution RPC utilise ensuite ces informations d’identification pour tous les appels RPC sur la liaison, quelles que soient les modifications apportées à l’identité du thread appelant ou au processus appelant. Les applications peuvent également sélectionner suivi des identités dynamiques. Le suivi des identités dynamiques indique à la bibliothèque d’exécution RPC d’utiliser les informations d’identification du thread appelant au moment de chaque appel, plutôt que le handle de liaison. Le suivi des identités par défaut est statique.

Si l’identité du client ne va pas changer, le suivi des identités statiques peut avoir de meilleures caractéristiques de performances et peut économiser le temps d’exécution RPC à chaque vérification si l’identité sur le thread appelant est identique à l’identité donnée au système de sécurité. Si l’identité du thread appelant peut changer entre les appels et que le serveur doit reconnaître ces modifications, il est préférable de spécifier le suivi des identités dynamiques : le temps d’exécution RPC effectue le suivi silencieux et efficace de l’identité pour vous, et si l’identité change, gère cette modification en votre nom.

Note

Pour ncalrpc appels, le suivi des identités statiques et dynamiques a des caractéristiques de performances différentes et, selon les circonstances, l’un ou l’autre peut être plus rapide.

 

Dans le cadre de la spécification QOS, le programme client peut également définir le type d’emprunt d’identité qu’un programme serveur peut effectuer pour son compte. Pour plus d’informations, consultez l’emprunt d’identité client.

Le champ numéro de version de la structure RPC_SECURITY_QOS doit toujours être défini sur RPC_C_SECURITY_QOS_VERSION.