Partager via


structure RPC_HTTP_TRANSPORT_CREDENTIALS_A (rpcdce.h)

La structure RPC_HTTP_TRANSPORT_CREDENTIALS définit des informations d’identification supplémentaires à authentifier auprès d’un serveur proxy RPC lors de l’utilisation de RPC/HTTP.

Syntaxe

typedef struct _RPC_HTTP_TRANSPORT_CREDENTIALS_A {
  SEC_WINNT_AUTH_IDENTITY_A *TransportCredentials;
  unsigned long             Flags;
  unsigned long             AuthenticationTarget;
  unsigned long             NumberOfAuthnSchemes;
  unsigned long             *AuthnSchemes;
  unsigned char             *ServerCertificateSubject;
} RPC_HTTP_TRANSPORT_CREDENTIALS_A, *PRPC_HTTP_TRANSPORT_CREDENTIALS_A;

Membres

TransportCredentials

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.

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 du 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 une ou les deux valeurs suivantes :

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

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.

Remarques

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

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

Noms principaux

RPC_HTTP_TRANSPORT_CREDENTIALS_V2

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