Partager via


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.

Valeur Signification
RPC_C_HTTP_FLAG_USE_SSL
Indique à RPC d’utiliser SSL pour communiquer avec le proxy RPC.
RPC_C_HTTP_FLAG_USE_FIRST_AUTH_SCHEME
Lorsqu’il est défini, RPC choisit le premier schéma dans le tableau AuthnSchemes et tente de s’authentifier auprès du proxy RPC. Si le proxy RPC ne prend pas en charge le schéma d’authentification sélectionné, l’appel échoue. Lorsqu’il n’est pas défini, le client RPC interroge le proxy RPC pour les schémas d’authentification pris en charge et en choisit un.

AuthenticationTarget

Spécifie la cible d’authentification.

Doit être défini sur l’une des valeurs suivantes ou les deux :

Valeur Signification
RPC_C_HTTP_AUTHN_TARGET_SERVER
Authentifiez-vous auprès du proxy RPC, qui est le serveur HTTP du point de vue HTTP. Il s’agit de la valeur la plus courante.
RPC_C_HTTP_AUTHN_TARGET_PROXY
Authentifiez-vous auprès du proxy HTTP. Cette valeur est rare.

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.
Si la version Unicode de la fonction RpcBindingSetAuthInfoEx est utilisée, les versions Unicode des structures RPC_HTTP_TRANSPORT_CREDENTIALS_V2 et SEC_WINNT_AUTH_IDENTITY doivent également être fournies, et le membre Flags dans TransportCredentials doit être défini sur SEC_WINNT_AUTH_IDENTITY_UNICODE. Si la version ANSI de la fonction RpcBindingSetAuthInfoEx est utilisée, les versions ANSI des structures RPC_HTTP_TRANSPORT_CREDENTIALS_V2 et SEC_WINNT_AUTH_IDENTITY doivent être fournies, et le membre Flags dans TransportCredentials doit être défini sur SEC_WINNT_AUTH_IDENTITY_ANSI.

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

Noms principaux

RPC_HTTP_TRANSPORT_CREDENTIALS

RPC_HTTP_TRANSPORT_CREDENTIALS_V3

RPC_SECURITY_QOS

RPC_SECURITY_QOS_V2

RPC_SECURITY_QOS_V3

Appels de procédure distante à l’aide de RPC sur HTTP

RpcBindingSetAuthInfoEx

RpcCertGeneratePrincipalName

SEC_WINNT_AUTH_IDENTITY