Partager via


RPC_SECURITY_QOS_V2_A structure (rpcdce.h)

La structure RPC_SECURITY_QOS_V2 définit les paramètres de qualité de service de sécurité de la version 2 sur un handle de liaison. Consultez Remarques pour la disponibilité des versions sur les éditions de Windows.

Syntaxe

typedef struct _RPC_SECURITY_QOS_V2_A {
  unsigned long Version;
  unsigned long Capabilities;
  unsigned long IdentityTracking;
  unsigned long ImpersonationType;
  unsigned long AdditionalSecurityInfoType;
  union {
    RPC_HTTP_TRANSPORT_CREDENTIALS_A *HttpCredentials;
  } u;
} RPC_SECURITY_QOS_V2_A, *PRPC_SECURITY_QOS_V2_A;

Membres

Version

Version de la structure RPC_SECURITY_QOS utilisée. Cette rubrique documente la version 2 de la structure RPC_SECURITY_QOS . Consultez RPC_SECURITY_QOS, RPC_SECURITY_QOS_V3, RPC_SECURITY_QOS_V4 et RPC_SECURITY_QOS_V5 pour d’autres versions.

Capabilities

Services de sécurité fournis à l’application. Capabilities est un ensemble d’indicateurs qui peuvent être combinés à l’aide de l’opérateur OR au niveau du bit.

Valeur Signification
RPC_C_QOS_CAPABILITIES_DEFAULT
Utilisé lorsqu’aucune fonctionnalité spécifique au fournisseur n’est nécessaire.
RPC_C_QOS_CAPABILITIES_MUTUAL_AUTH
La spécification de cet indicateur entraîne la demande d’authentification mutuelle au fournisseur de sécurité au moment de l’exécution du RPC. Certains fournisseurs de sécurité ne prennent pas en charge l’authentification mutuelle. Si le fournisseur de sécurité ne prend pas en charge l’authentification mutuelle ou si l’identité du serveur ne peut pas être établie, un appel de procédure distante à ce serveur échoue avec une erreur RPC_S_SEC_PKG_ERROR.
Note RPC s’appuie sur le SSP pour indiquer quelles options de sécurité ont été correctement négociées ; RPC échoue à son tour tout appel pour lequel le fournisseur de services partagés signale qu’il n’a pas pu négocier une option. Toutefois, certains fournisseurs de sécurité sont connus pour signaler la négociation réussie d’une option même lorsque l’option n’a pas été négociée avec succès. Par exemple, NTLM signale la négociation réussie de l’authentification mutuelle pour des raisons de compatibilité descendante, même s’il ne prend pas en charge l’authentification mutuelle. Vérifiez si le fournisseur de services partagés particulier est utilisé pour déterminer son comportement par rapport aux options de sécurité.
 
RPC_C_QOS_CAPABILITIES_MAKE_FULLSIC
Actuellement non implémenté.
RPC_C_QOS_CAPABILITIES_ANY_AUTHORITY
Accepte les informations d’identification du client même si l’autorité de certification ne figure pas dans la liste des autorités de certification approuvées du serveur. Cette constante est utilisée uniquement par le SSP SCHANNEL.
RPC_C_QOS_CAPABILITIES_IGNORE_DELEGATE_FAILURE
Lorsqu’il est spécifié, cet indicateur indique au runtime RPC sur le client d’ignorer une erreur pour établir un contexte de sécurité qui prend en charge la délégation. Normalement, si le client demande la délégation et que le système de sécurité ne peut pas établir un contexte de sécurité qui prend en charge la délégation, l’erreur RPC_S_SEC_PKG_ERROR est retournée ; lorsque cet indicateur est spécifié, aucune erreur n’est retournée.
Note Non pris en charge sur Windows XP et les éditions clientes antérieures, non pris en charge sur Windows 2000 et les éditions serveur antérieures.
 
RPC_C_QOS_CAPABILITIES_LOCAL_MA_HINT
Lorsqu’il est spécifié, cet indicateur indique à RPC que le serveur est local sur l’ordinateur qui effectue l’appel RPC. Dans ce cas, RPC indique au mappeur de point de terminaison de récupérer uniquement les points de terminaison inscrits par le principal spécifié dans les membres ServerPrincName ou Sid (ces membres sont disponibles dans RPC_SECURITY_QOS_V3, RPC_SECURITY_QOS_V4 et RPC_SECURITY_QOS_V5 uniquement). Pour plus d'informations, consultez la section Notes.
Note Non pris en charge sur Windows XP et les éditions clientes antérieures, non pris en charge sur Windows 2000 et les éditions serveur antérieures.
 

IdentityTracking

Définit le mode de suivi du contexte. Doit être défini sur l’une des valeurs indiquées dans le tableau suivant.

Valeur Signification
RPC_C_QOS_IDENTITY_STATIC
Le contexte de sécurité n’est créé qu’une seule fois et n’est jamais révisé pendant l’intégralité de la communication, même si le côté client le modifie. Il s’agit du comportement par défaut si RPC_SECURITY_QOS_V2 n’est pas spécifié.
RPC_C_QOS_IDENTITY_DYNAMIC
Le contexte est révisé chaque fois que le ModifiedId dans le jeton du client est modifié. Tous les protocoles utilisent l’Id modifié (voir la remarque).

Windows 2000 : Tous les protocoles distants (tous les protocoles autres que ncalrpc) utilisent l’AuthenticationID, également appelé LogonId, pour suivre les modifications apportées à l’identité du client. Le protocole ncalrpc utilise ModifiedId.

ImpersonationType

Niveau auquel le processus serveur peut emprunter l’identité du client.

Valeur Signification
RPC_C_IMP_LEVEL_DEFAULT
Utilise le niveau d’emprunt d’identité par défaut.
RPC_C_IMP_LEVEL_ANONYMOUS
Le client ne fournit pas d’informations d’identification au serveur. Le serveur ne peut pas emprunter l’identité du client ou identifier le client. De nombreux serveurs rejettent les appels avec ce type d’emprunt d’identité.
RPC_C_IMP_LEVEL_IDENTIFY
Le serveur peut obtenir l’identité du client et emprunter l’identité du client pour effectuer Access Control vérifications de liste (ACL), mais ne peut pas emprunter l’identité du client. Pour plus d’informations, consultez Niveaux d’emprunt d’identité.
Note Certains fournisseurs de sécurité peuvent traiter ce type d’emprunt d’identité comme équivalent à RPC_C_IMP_LEVEL_IMPERSONATE.
 
RPC_C_IMP_LEVEL_IMPERSONATE
Le serveur peut emprunter l’identité du contexte de sécurité du client sur son système local, mais pas sur les systèmes distants.
RPC_C_IMP_LEVEL_DELEGATE
Le serveur peut emprunter l'identité du contexte de sécurité du client tout en agissant au nom du client. Le serveur peut également effectuer des appels sortants vers d’autres serveurs tout en agissant pour le compte du client. Le serveur peut utiliser le contexte de sécurité du client sur d’autres ordinateurs pour accéder aux ressources locales et distantes en tant que client.

AdditionalSecurityInfoType

Spécifie le type d’informations d’identification supplémentaires présentes dans l’union u . Les constantes suivantes sont prises en charge :

Constantes prises en charge Signification
0
Aucune information d’identification supplémentaire n’est passée dans l’union u .
RPC_C_AUTHN_INFO_TYPE_HTTP
Le membre HttpCredentials de l’union u pointe vers une structure RPC_HTTP_TRANSPORT_CREDENTIALS . Cette valeur ne peut être utilisée que lorsque la séquence de protocole est ncacn_http. Toute autre séquence de protocole retourne RPC_S_INVALID_ARG.

u

u.HttpCredentials

Ensemble supplémentaire d’informations d’identification à passer à RPC, sous la forme d’une structure RPC_HTTP_TRANSPORT_CREDENTIALS . Utilisé lorsque le membre AdditionalSecurityInfoType est défini sur RPC_C_AUTHN_INFO_TYPE_HTTP.

Remarques

La liste suivante définit la disponibilité des versions QOS sur différents systèmes d’exploitation Windows :

  • Version 1 : Windows 2000 et versions ultérieures.
  • Version 2 : Windows XP avec Service Pack 1 (SP1) et versions ultérieures.
  • Version 3 : Windows Server 2003 et versions ultérieures.
  • Version 4 : Windows Vista et versions ultérieures.
  • Version 5 : Windows 8 et versions ultérieures.
Les éditions de Windows prennent également en charge les versions de bas niveau. Par exemple, Windows Server 2003 prend en charge la version 3, mais également les versions 1 et 2.

Les fonctions de sécurité côté client RpcBindingInqAuthInfoEx et RpcBindingSetAuthInfo utilisent la structure RPC_SECURITY_QOS pour vous renseigner sur la qualité de service de sécurité d’un handle de liaison ou pour définir celle-ci.

RPC prend en charge l’indicateur de RPC_C_QOS_CAPABILITIES_LOCAL_MA_HINT (non pris en charge sur Windows XP et les éditions clientes antérieures, non pris en charge sur Windows 2000 et les éditions serveur antérieures). Cet indicateur est utilisé uniquement lorsque des points de terminaison dynamiques et l’authentification mutuelle sont utilisés. En outre, il n’est pas pris en charge pour les séquences de protocole ncadg_ . Si cet indicateur est utilisé pour une séquence de protocole ncadg_ , ou sans utiliser l’authentification mutuelle, RPC_S_INVALID_ARG est retourné par l’appel de fonction RpcBindingSetAuthInfoEx . Cet indicateur est conçu pour empêcher une attaque par déni de service. L’utilisation de cet indicateur force le runtime RPC à demander au mappeur de point de terminaison uniquement pour les points de terminaison inscrits par le principal spécifié dans les membres ServerPrincName ou Sid . Cela empêche un attaquant sur l’ordinateur local d’essayer d’inciter votre client RPC à se connecter à un point de terminaison usurpé qu’il a inscrit dans le mappeur de point de terminaison. Notez que, étant donné que l’attaque est uniquement locale (par exemple, à partir d’un ordinateur Terminal Server avec de nombreux utilisateurs), l’indicateur fonctionne uniquement pour les appels RPC effectués localement.

Note Certains fournisseurs de sécurité, tels que Kerberos, prennent en charge le type délégation-emprunt d’identité. Sur les éditions Windows qui prennent en charge le type délégation-emprunt d’identité, si le client a demandé la délégation mais que le fournisseur de sécurité ne peut pas la fournir, l’appel échoue avec PRC_S_SEC_PKG_ERROR, sauf si l’indicateur RPC_C_QOS_CAPABILITIES_IGNORE_DELEGATE_FAILURE est spécifié.
 

Configuration requise

Condition requise Valeur
Client minimal pris en charge Windows XP avec SP1 [applications de bureau uniquement]
Serveur minimal pris en charge Windows Server 2003 [applications de bureau uniquement]
En-tête rpcdce.h (inclure Rpc.h)

Voir aussi

RPC_HTTP_TRANSPORT_CREDENTIALS

RPC_SECURITY_QOS

RPC_SECURITY_QOS_V3

RPC_SECURITY_QOS_V4

RPC_SECURITY_QOS_V5

RpcBindingInqAuthInfoEx

RpcBindingSetAuthInfoEx