structure RPC_SECURITY_QOS_V5_W (rpcdce.h)
La structure RPC_SECURITY_QOS_V5 définit les paramètres de qualité de service de sécurité de la version 5 sur un handle de liaison. Consultez Remarques sur la disponibilité des versions sur les éditions Windows.
Syntaxe
typedef struct _RPC_SECURITY_QOS_V5_W {
unsigned long Version;
unsigned long Capabilities;
unsigned long IdentityTracking;
unsigned long ImpersonationType;
unsigned long AdditionalSecurityInfoType;
union {
RPC_HTTP_TRANSPORT_CREDENTIALS_W *HttpCredentials;
} u;
void *Sid;
unsigned int EffectiveOnly;
void *ServerSecurityDescriptor;
} RPC_SECURITY_QOS_V5_W, *PRPC_SECURITY_QOS_V5_W;
Membres
Version
Version de la structure RPC_SECURITY_QOS utilisée. Cette rubrique documente la version 5 de la structure RPC_SECURITY_QOS . Pour d’autres versions, consultez RPC_SECURITY_QOS, RPC_SECURITY_QOS_V2, RPC_SECURITY_QOS_V3 et RPC_SECURITY_QOS_V4 .
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 |
---|---|
|
Aucune fonctionnalité spécifique au fournisseur n’est nécessaire. |
|
Le temps d’exécution RPC demande l’authentification mutuelle auprès du fournisseur de sécurité. 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 fournisseur de services partagés pour indiquer les options de sécurité qui ont été négociées avec succès ; à son tour, un appel RPC échoue si 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 réussite de la négociation 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 que le fournisseur de services partagés particulier est utilisé pour déterminer son comportement en ce qui concerne les options de sécurité.
|
|
Actuellement non implémenté. |
|
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 fournisseur de services SCHANNEL. |
|
Le runtime RPC sur le client ignore 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é prenant 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.
|
|
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
Mode de suivi du contexte comme l’une des valeurs suivantes.
Valeur | Signification |
---|---|
|
Le contexte de sécurité n’est créé qu’une seule fois et n’est jamais révisé pendant toute la communication, même si le côté client le modifie. Il s’agit du comportement par défaut si RPC_SECURITY_QOS_V5 n’est pas spécifié. |
|
Le contexte de sécurité est révisé chaque fois que le ModifiedId dans le jeton du client est modifié. Tous les protocoles utilisent l’Id modifié (voir 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 |
---|---|
|
Utilise le niveau d’emprunt d’identité par défaut. |
|
Le client ne fournit pas d’informations d’identification au serveur. Le serveur ne peut pas emprunter l’identité du client ou l’identifier. De nombreux serveurs rejettent les appels avec ce type d’emprunt d’identité. |
|
Le serveur peut obtenir l’identité du client et emprunter l’identité du client pour effectuer des vérifications de liste de Access Control (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 considérer ce type d’emprunt d’identité comme équivalent à 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. |
|
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
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 |
---|---|
|
Aucune information d’identification supplémentaire n’est transmise dans l’union u . |
|
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.
Sid
Pointeur vers un identificateur de sécurité (SID). Le SID est une alternative au membre ServerPrincName , et un seul peut être spécifié. Le membre Sid ne peut pas être défini sur non NULL si le fournisseur de sécurité est le fournisseur SCHANNEL SSP. Certaines séquences de protocoles utilisent Sid en interne pour la sécurité, et d’autres utilisent un ServerPrincName. Par exemple, ncalrpc utilise un Sid en interne, et si l’appelant connaît à la fois le SID et le ServerPrincName, un appel utilisant ncalrpc peut se terminer beaucoup plus rapidement dans certains cas si le SID est passé. En revanche, les séquences de protocole ncacn_ et ncadg_ utilisent un ServerPrincName en interne et peuvent donc exécuter des appels plus rapidement lorsqu’elles sont fournies par serverPrincName.
EffectiveOnly
Si la valeur est définie, seuls les privilèges activés sont vus par le serveur.
ServerSecurityDescriptor
Pointeur vers le SECURITY_DESCRIPTOR qui identifie le serveur. Il est requis pour l’authentification mutuelle.
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 fonctions de sécurité côté client RpcBindingInqAuthInfoEx et RpcBindingSetAuthInfo utilisent la structure RPC_SECURITY_QOS pour se renseigner sur ou pour définir la qualité de service de sécurité d’un handle de liaison.
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é à partir de 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 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.
Configuration requise
Condition requise | Valeur |
---|---|
Client minimal pris en charge | Windows 8 [applications de bureau uniquement] |
Serveur minimal pris en charge | Windows Server 2012 [applications de bureau uniquement] |
En-tête | rpcdce.h (inclure Rpc.h) |
Voir aussi
RPC_BINDING_HANDLE_SECURITY_V1