estructura de RPC_HTTP_TRANSPORT_CREDENTIALS_A (rpcdce.h)

La estructura de RPC_HTTP_TRANSPORT_CREDENTIALS define credenciales adicionales para autenticarse en un servidor proxy RPC al usar RPC/HTTP.

Sintaxis

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;

Miembros

TransportCredentials

Puntero a una estructura de SEC_WINNT_AUTH_IDENTITY que contiene el nombre de usuario, el dominio y la contraseña del usuario.

Flags

Conjunto de marcas que se pueden combinar con el operador OR bit a bit.

Valor Significado
RPC_C_HTTP_FLAG_USE_SSL
Indica a RPC que use SSL para comunicarse con el proxy RPC.
RPC_C_HTTP_FLAG_USE_FIRST_AUTH_SCHEME
Cuando se establece, RPC elige el primer esquema de la matriz AuthnSchemes e intenta autenticarse en el proxy RPC. Si el proxy RPC no admite el esquema de autenticación seleccionado, se produce un error en la llamada. Cuando no se establece, el cliente RPC consulta el proxy RPC para los esquemas de autenticación admitidos y elige uno.

AuthenticationTarget

Especifica el destino de autenticación.

Debe establecerse en uno o ambos de los valores siguientes:

Valor Significado
RPC_C_HTTP_AUTHN_TARGET_SERVER
Autentíquese en el proxy RPC, que es el servidor HTTP desde una perspectiva HTTP. Este es el valor más común.
RPC_C_HTTP_AUTHN_TARGET_PROXY
Autentíquese en el proxy HTTP. Este valor es poco común.

NumberOfAuthnSchemes

Número de elementos de la matriz AuthnScheme .

AuthnSchemes

ServerCertificateSubject

Contiene una cadena opcional con el nombre principal de servidor esperado. El nombre principal tiene el mismo formato que el generado para RpcCertGeneratePrincipalName (consulte Nombres principales para obtener más información). Este miembro solo se usa cuando se usa SSL. En tales casos, el certificado de servidor se comprueba con el nombre principal generado. Si no coinciden, se devuelve un error. Este miembro permite a los clientes autenticar el proxy RPC.

Comentarios

Si el miembro TransportCredentials es NULL y el esquema de autenticación es NTLM, se usan las credenciales del usuario que ha iniciado sesión actualmente. Para evitar exponer las credenciales de usuario en la red a través de un hash lm débil, las credenciales de inicio de sesión de usuario solo se usan si una o ambas de las siguientes condiciones son verdaderas:

  • El autor de la llamada solicitó el uso de SSL y usó el miembro ServerCertificateSubject . Este escenario garantiza que las credenciales están protegidas en tránsito y en el destino final, incluso si se usa un hash débil.
  • La clave lncompatibilitylevel se establece en 2 o superior. Esto hace que el proveedor de seguridad NTLM emita o responda solo al hash NT seguro, no al hash lm débil. Además, se recomienda a los clientes que usen el nivel 3 o superior, lo que intentará NTLMv2.
Si se usa la versión Unicode de la función RpcBindingSetAuthInfoEx , las versiones Unicode de la RPC_HTTP_TRANSPORT_CREDENTIALS y las estructuras de SEC_WINNT_AUTH_IDENTITY también deben proporcionarse y el miembro Flags de TransportCredentials debe establecerse en SEC_WINNT_AUTH_IDENTITY_UNICODE. Si se usa la versión ANSI de la función RpcBindingSetAuthInfoEx , se deben proporcionar versiones ANSI de RPC_HTTP_TRANSPORT_CREDENTIALS y estructuras de SEC_WINNT_AUTH_IDENTITY , y el miembro Flags de TransportCredentials debe establecerse en SEC_WINNT_AUTH_IDENTITY_ANSI.

Requisitos

Requisito Value
Cliente mínimo compatible Windows XP con SP1 [solo aplicaciones de escritorio]
Servidor mínimo compatible Windows Server 2003 [solo aplicaciones de escritorio]
Encabezado rpcdce.h (include Rpc.h)

Consulte también

Nombres principales

RPC_HTTP_TRANSPORT_CREDENTIALS_V2

RPC_HTTP_TRANSPORT_CREDENTIALS_V3

RPC_SECURITY_QOS

RPC_SECURITY_QOS_V2

RPC_SECURITY_QOS_V3

Llamadas de procedimiento remoto con RPC sobre HTTP

RpcBindingSetAuthInfoEx

RpcCertGeneratePrincipalName

SEC_WINNT_AUTH_IDENTITY