RPC_HTTP_TRANSPORT_CREDENTIALS_V2_A structure (rpcdce.h)
La structure RPC_HTTP_TRANSPORT_CREDENTIALS_V2 définit des informations d’identification supplémentaires pour l’authentification auprès d’un serveur proxy RPC ou d’un serveur proxy HTTP lors de l’utilisation de RPC/HTTP.
RPC_HTTP_TRANSPORT_CREDENTIALS_V2 étend RPC_HTTP_TRANSPORT_CREDENTIALS en autorisant l’authentification sur un serveur proxy HTTP.
Syntaxe
typedef struct _RPC_HTTP_TRANSPORT_CREDENTIALS_V2_A {
SEC_WINNT_AUTH_IDENTITY_A *TransportCredentials;
unsigned long Flags;
unsigned long AuthenticationTarget;
unsigned long NumberOfAuthnSchemes;
unsigned long *AuthnSchemes;
unsigned char *ServerCertificateSubject;
SEC_WINNT_AUTH_IDENTITY_A *ProxyCredentials;
unsigned long NumberOfProxyAuthnSchemes;
unsigned long *ProxyAuthnSchemes;
} RPC_HTTP_TRANSPORT_CREDENTIALS_V2_A, *PRPC_HTTP_TRANSPORT_CREDENTIALS_V2_A;
Membres
TransportCredentials
Pointeur vers une structure SEC_WINNT_AUTH_IDENTITY qui contient le nom d’utilisateur, le domaine et le mot de passe de l’utilisateur.
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 l’une des valeurs suivantes ou les deux :
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, les RPC_C_HTTP_AUTHN_SCHEME_NEGOTIATE et les RPC_C_HTTP_AUTHN_SCHEME_DIGEST sont définis en tant que constantes, mais ne sont pas actuellement pris en charge. 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 également pris en charge par le serveur est trouvé, ce schéma d’authentification est utilisé.
ServerCertificateSubject
Contient une chaîne facultative avec le nom de principal du serveur attendu. Le nom principal est au même format que celui généré pour RpcCertGeneratePrincipalName (pour plus d’informations, consultez Noms de principal ). Ce membre est utilisé uniquement lorsque SSL est utilisé. Dans ce cas, le certificat de serveur est vérifié par rapport au nom de principal généré. Si elles ne correspondent pas, une erreur est retournée. Ce membre permet aux clients d’authentifier le proxy RPC.
ProxyCredentials
Pointeur vers une structure de SEC_WINNT_AUTH_IDENTITY qui contient le nom d’utilisateur, le domaine et le mot de passe de l’utilisateur lors de l’authentification auprès d’un serveur proxy HTTP. ProxyCredentials n’est valide que 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 n’est valide que 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 est valide uniquement 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 de l’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 des conditions suivantes ou les deux 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 est définie sur 2 ou une valeur supérieure. Cela amène 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 Vista [applications de bureau uniquement] |
Serveur minimal pris en charge | Windows Server 2008 [applications de bureau uniquement] |
En-tête | rpcdce.h (inclure Rpc.h) |
Voir aussi
RPC_HTTP_TRANSPORT_CREDENTIALS
RPC_HTTP_TRANSPORT_CREDENTIALS_V3