structure RPC_HTTP_TRANSPORT_CREDENTIALS_V3_A (rpcdce.h)
La structure RPC_HTTP_TRANSPORT_CREDENTIALS_V3 définit des informations d’identification supplémentaires à authentifier auprès d’un serveur proxy RPC ou d’un serveur proxy HTTP lors de l’utilisation de RPC/HTTP.
RPC_HTTP_TRANSPORT_CREDENTIALS_V3 étend RPC_HTTP_TRANSPORT_CREDENTIALS_V2 en autorisant l’utilisation de formulaires d’informations d’identification arbitraires.
Syntaxe
typedef struct _RPC_HTTP_TRANSPORT_CREDENTIALS_V3_A {
RPC_AUTH_IDENTITY_HANDLE TransportCredentials;
unsigned long Flags;
unsigned long AuthenticationTarget;
unsigned long NumberOfAuthnSchemes;
unsigned long *AuthnSchemes;
unsigned char *ServerCertificateSubject;
RPC_AUTH_IDENTITY_HANDLE ProxyCredentials;
unsigned long NumberOfProxyAuthnSchemes;
unsigned long *ProxyAuthnSchemes;
} RPC_HTTP_TRANSPORT_CREDENTIALS_V3_A, *PRPC_HTTP_TRANSPORT_CREDENTIALS_V3_A;
Membres
TransportCredentials
Pointeur vers un handle d’authentification opaque sous la forme d’une structure de RPC_AUTH_IDENTITY_HANDLE .
Flags
Ensemble d’indicateurs qui peuvent être combinés avec l’opérateur OR au niveau du bit.
AuthenticationTarget
Spécifie la cible d’authentification.
Doit être défini sur une ou les deux valeurs suivantes :
NumberOfAuthnSchemes
Nombre d’éléments dans le tableau AuthnScheme .
AuthnSchemes
Pointeur vers un tableau de schémas d’authentification que le client est prêt à utiliser. Chaque élément du tableau peut contenir l’une des constantes suivantes :
RPC_C_HTTP_AUTHN_SCHEME_BASIC
RPC_C_HTTP_AUTHN_SCHEME_NTLM
RPC_C_HTTP_AUTHN_SCHEME_PASSPORT
RPC_C_HTTP_AUTHN_SCHEME_DIGEST
RPC_C_HTTP_AUTHN_SCHEME_NEGOTIATE
RPC_C_HTTP_AUTHN_SCHEME_PASSPORT, RPC_C_HTTP_AUTHN_SCHEME_NEGOTIATE et RPC_C_HTTP_AUTHN_SCHEME_DIGEST sont définis en tant que constantes, mais ne sont pas pris en charge actuellement. Les appelants ne doivent pas les spécifier ; cela entraîne RPC_S_CANNOT_SUPPORT erreur. Chaque constante peut être spécifiée une seule fois. RPC ne vérifie pas cette restriction pour des raisons de performances, mais la spécification d’une constante plusieurs fois produit des résultats non définis.
L’algorithme permettant de choisir le schéma d’authentification réel est le suivant :
Si RPC_C_HTTP_FLAG_USE_FIRST_AUTH_SCHEME est spécifié, le premier schéma d’authentification est choisi. S’il n’est pas pris en charge par le serveur, l’établissement de la connexion échoue. Si RPC_C_HTTP_FLAG_USE_FIRST_AUTH_SCHEME n’est pas spécifié, le client RPC tente d’abord une connexion anonyme au proxy RPC. Si IIS retourne une demande d’authentification, le client RPC choisit le schéma d’authentification préféré par le serveur s’il se trouve également dans le tableau AuthnScheme . Si le schéma préféré par le serveur n’est pas dans le tableau AuthnScheme , le tableau AuthnScheme est parcouru du début à la fin, et si un schéma est trouvé qui est également pris en charge par le serveur, ce schéma d’authentification est utilisé.
ServerCertificateSubject
Contient une chaîne facultative avec le nom de principal de serveur attendu. Le nom principal est au même format que celui généré pour RpcCertGeneratePrincipalName (pour plus d’informations, consultez Noms principaux). Ce membre est utilisé uniquement lorsque SSL est utilisé. Dans ce cas, le certificat de serveur est vérifié par rapport au nom principal généré. S’ils ne correspondent pas, une erreur est retournée. Ce membre permet aux clients d’authentifier le proxy RPC.
ProxyCredentials
Pointeur vers un handle d’authentification opaque sous la forme d’une structure de RPC_AUTH_IDENTITY_HANDLE lors de l’authentification auprès d’un serveur proxy HTTP. ProxyCredentials est valide uniquement lorsque AuthenticationTarget contient RPC_C_HTTP_AUTHN_TARGET_PROXY.
NumberOfProxyAuthnSchemes
Nombre d’éléments dans le tableau ProxyAuthnSchemes lors de l’authentification auprès d’un serveur proxy HTTP. NumberOfProxyAuthnSchemes est valide uniquement lorsque AuthenticationTarget contient RPC_C_HTTP_AUTHN_TARGET_PROXY.
ProxyAuthnSchemes
Pointeur vers un tableau de schémas d’authentification que le client est prêt à utiliser lors de l’authentification auprès d’un serveur proxy HTTP. Chaque élément du tableau peut contenir l’une des constantes suivantes. ProxyAuthnSchemes n’est valide que lorsque AuthenticationTarget contient RPC_C_HTTP_AUTHN_TARGET_PROXY.
RPC_C_HTTP_AUTHN_SCHEME_BASIC
RPC_C_HTTP_AUTHN_SCHEME_NTLM
RPC_C_HTTP_AUTHN_SCHEME_PASSPORT
RPC_C_HTTP_AUTHN_SCHEME_DIGEST
RPC_C_HTTP_AUTHN_SCHEME_NEGOTIATE
Notes
Si le membre TransportCredentials a la valeur NULL et que le schéma d’authentification est NTLM, les informations d’identification de l’utilisateur actuellement connecté sont utilisées. Pour éviter d’exposer les informations d’identification utilisateur sur le réseau via un hachage LM faible, les informations d’identification d’ouverture de session de l’utilisateur sont utilisées uniquement si l’une ou les deux conditions suivantes sont remplies :
- L’appelant a demandé l’utilisation de SSL et a utilisé le membre ServerCertificateSubject . Ce scénario garantit que les informations d’identification sont protégées à la fois en transit et à la destination finale, même si un hachage faible est utilisé.
- La clé lncompatibilitylevel a la valeur 2 ou supérieure. Cela oblige le fournisseur de sécurité NTLM à émettre ou à répondre uniquement au hachage NT fort, et non au hachage LM faible. En outre, les clients sont encouragés à utiliser le niveau 3 ou supérieur, qui tentera NTLMv2.
Spécifications
Client minimal pris en charge | Windows 7 [applications de bureau uniquement] |
Serveur minimal pris en charge | Windows Server 2008 R2 [applications de bureau uniquement] |
En-tête | rpcdce.h (inclure Rpc.h) |
Voir aussi
RPC_HTTP_TRANSPORT_CREDENTIALS
RPC_HTTP_TRANSPORT_CREDENTIALS_V2