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 de 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 le membre Capabilities de la structure RPC_SECURITY_QOS pour définir les parties de l’application client/serveur qui sont 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 de services partagés du protocole Kerberos authentifie à la fois le client et le serveur. La valeur par défaut pour tous les autres 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 le membre Capabilities 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 lors d’un appel de procédure distante. Lorsque vous utilisez le fournisseur SSP SCHANNEL, il est également possible de définir le membre Capabilities sur RPC_C_QOS_CAPABILITIES_ANY_AUTHORITY. Cette constante spécifie que le fournisseur de services partagés doit valider l’appel de procédure distante même si l’autorité de certification qui a émis le certificat d’authentification du client ne se trouve 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 société ou un organization indépendant, tel que VeriSign, qui émet des certificats d’authentification.

Les applications peuvent également définir le suivi des identités utilisé par la bibliothèque d’exécution RPC. Les programmes utilisent généralement le suivi d’identité statique. Avec le suivi statique, les informations d’identification du client sont définies lorsqu’il 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 le suivi dynamique des identités. Le suivi dynamique des identités 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 d’identité statique peut avoir de meilleures caractéristiques de performances et peut économiser le temps d’exécution RPC en vérifiant à chaque fois 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 d’un appel à l’autre et que le serveur doit reconnaître ces modifications, il est préférable de spécifier le suivi d’identité dynamique : le temps d’exécution rpc effectue un suivi silencieux et efficace de l’identité et, si l’identité change, gère cette modification en votre nom.

Notes

Pour les appels ncalrpc , le suivi des identités statique et dynamique a des caractéristiques de performances différentes et, selon les circonstances, 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 en son nom. Pour plus d’informations, consultez 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.