estrutura RPC_HTTP_TRANSPORT_CREDENTIALS_A (rpcdce.h)

A estrutura RPC_HTTP_TRANSPORT_CREDENTIALS define credenciais adicionais para autenticar em um servidor proxy RPC ao usar RPC/HTTP.

Sintaxe

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;

Membros

TransportCredentials

Um ponteiro para uma estrutura SEC_WINNT_AUTH_IDENTITY que contém o nome de usuário, o domínio e a senha do usuário.

Flags

Um conjunto de sinalizadores que podem ser combinados com o operador OR bit a bit.

Valor Significado
RPC_C_HTTP_FLAG_USE_SSL
Instrui o RPC a usar o SSL para se comunicar com o Proxy RPC.
RPC_C_HTTP_FLAG_USE_FIRST_AUTH_SCHEME
Quando definido, o RPC escolhe o primeiro esquema na matriz AuthnSchemes e tenta se autenticar no Proxy RPC. Se o Proxy RPC não der suporte ao esquema de autenticação selecionado, a chamada falhará. Quando não definido, o cliente RPC consulta o Proxy RPC para esquemas de autenticação com suporte e escolhe um.

AuthenticationTarget

Especifica o destino de autenticação.

Deve ser definido como um ou ambos os seguintes valores:

Valor Significado
RPC_C_HTTP_AUTHN_TARGET_SERVER
Autentique-se no Proxy RPC, que é o servidor HTTP de uma perspectiva HTTP. Esse é o valor mais comum.
RPC_C_HTTP_AUTHN_TARGET_PROXY
Autentique-se no Proxy HTTP. Esse valor é incomum.

NumberOfAuthnSchemes

O número de elementos na matriz AuthnScheme .

AuthnSchemes

ServerCertificateSubject

Contém uma cadeia de caracteres opcional com o nome da entidade de segurança do servidor esperado. O nome da entidade de segurança está no mesmo formato que o gerado para RpcCertGeneratePrincipalName (consulte Nomes de entidade de segurança para obter mais informações). Esse membro é usado somente quando o SSL é usado. Nesses casos, o certificado do servidor é verificado em relação ao nome da entidade de segurança gerada. Se eles não corresponderem, um erro será retornado. Esse membro permite que os clientes autentiquem o Proxy RPC.

Comentários

Se o membro TransportCredentials for NULL e o esquema de autenticação for NTLM, as credenciais do usuário conectado no momento serão usadas. Para evitar expor credenciais de usuário na rede por meio de um hash LM fraco, as credenciais de logon do usuário serão usadas somente se uma ou ambas as seguintes condições forem verdadeiras:

  • O chamador solicitou o uso do SSL e usou o membro ServerCertificateSubject . Esse cenário garante que as credenciais sejam protegidas em trânsito e no destino final, mesmo que um hash fraco seja usado.
  • A chave lncompatibilitylevel é definida como 2 ou superior. Isso faz com que o provedor de segurança NTLM emita ou responda apenas ao hash NT forte, não ao hash LM fraco. Além disso, os clientes são incentivados a usar o nível 3 ou superior, o que tentará NTLMv2.
Se a versão Unicode da função RpcBindingSetAuthInfoEx for usada, as versões Unicode das estruturas RPC_HTTP_TRANSPORT_CREDENTIALS e SEC_WINNT_AUTH_IDENTITY também deverão ser fornecidas e o membro Flags em TransportCredentials deverá ser definido como SEC_WINNT_AUTH_IDENTITY_UNICODE. Se a versão ANSI da função RpcBindingSetAuthInfoEx for usada, as versões ANSI das estruturas RPC_HTTP_TRANSPORT_CREDENTIALS e SEC_WINNT_AUTH_IDENTITY deverão ser fornecidas e o membro Flags em TransportCredentials deverá ser definido como SEC_WINNT_AUTH_IDENTITY_ANSI.

Requisitos

Requisito Valor
Cliente mínimo com suporte Windows XP com SP1 [somente aplicativos da área de trabalho]
Servidor mínimo com suporte Windows Server 2003 [somente aplicativos da área de trabalho]
Cabeçalho rpcdce.h (inclua Rpc.h)

Confira também

Nomes de entidade de segurança

RPC_HTTP_TRANSPORT_CREDENTIALS_V2

RPC_HTTP_TRANSPORT_CREDENTIALS_V3

RPC_SECURITY_QOS

RPC_SECURITY_QOS_V2

RPC_SECURITY_QOS_V3

Chamadas de procedimentos remotos usando RPC sobre HTTP

RpcBindingSetAuthInfoEx

RpcCertGeneratePrincipalName

SEC_WINNT_AUTH_IDENTITY