estrutura RPC_HTTP_TRANSPORT_CREDENTIALS_V3_A (rpcdce.h)
A estrutura RPC_HTTP_TRANSPORT_CREDENTIALS_V3 define credenciais adicionais para autenticar em um servidor proxy RPC ou servidor proxy HTTP ao usar RPC/HTTP.
RPC_HTTP_TRANSPORT_CREDENTIALS_V3 estende RPC_HTTP_TRANSPORT_CREDENTIALS_V2 permitindo que formulários arbitrários de credenciais sejam usados.
Sintaxe
typedef struct _RPC_HTTP_TRANSPORT_CREDENTIALS_V3_A {
RPC_AUTH_IDENTITY_HANDLE TransportCredentials;
unsigned long Flags;
unsigned long AuthenticationTarget;
unsigned long NumberOfAuthnSchemes;
unsigned long *AuthnSchemes;
unsigned char *ServerCertificateSubject;
RPC_AUTH_IDENTITY_HANDLE ProxyCredentials;
unsigned long NumberOfProxyAuthnSchemes;
unsigned long *ProxyAuthnSchemes;
} RPC_HTTP_TRANSPORT_CREDENTIALS_V3_A, *PRPC_HTTP_TRANSPORT_CREDENTIALS_V3_A;
Membros
TransportCredentials
Um ponteiro para um identificador de autenticação opaco na forma de uma estrutura RPC_AUTH_IDENTITY_HANDLE .
Flags
Um conjunto de sinalizadores que podem ser combinados com o operador OR bit a bit.
AuthenticationTarget
Especifica o destino de autenticação.
Deve ser definido como um ou ambos os seguintes valores:
NumberOfAuthnSchemes
O número de elementos na matriz AuthnScheme .
AuthnSchemes
Um ponteiro para uma matriz de esquemas de autenticação que o cliente está disposto a usar. Cada elemento da matriz pode conter uma das seguintes constantes:
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, RPC_C_HTTP_AUTHN_SCHEME_NEGOTIATE e RPC_C_HTTP_AUTHN_SCHEME_DIGEST são definidos como constantes, mas não têm suporte no momento. Os chamadores não devem especificá-los; isso resulta em RPC_S_CANNOT_SUPPORT erro. Cada constante pode ser especificada uma vez. O RPC não verifica essa restrição por motivos de desempenho, mas especificar uma constante mais de uma vez produz resultados indefinidos.
O algoritmo para escolher o esquema de autenticação real é o seguinte:
Se RPC_C_HTTP_FLAG_USE_FIRST_AUTH_SCHEME for especificado, o primeiro esquema de autenticação será escolhido. Se não houver suporte para o servidor, o estabelecimento de conexão falhará. Se RPC_C_HTTP_FLAG_USE_FIRST_AUTH_SCHEME não for especificado, o cliente RPC primeiro tentará uma conexão anônima com o Proxy RPC. Se o IIS retornar o desafio de autenticação, o cliente RPC escolherá o esquema de autenticação preferido pelo servidor se ele também estiver na matriz AuthnScheme . Se o esquema preferido pelo servidor não estiver na matriz AuthnScheme , a matriz AuthnScheme será percorrida do início ao fim e, se for encontrado um esquema com suporte também pelo servidor, esse esquema de autenticação será usado.
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.
ProxyCredentials
Um ponteiro para um identificador de autenticação opaco na forma de uma estrutura RPC_AUTH_IDENTITY_HANDLE ao autenticar em um servidor proxy HTTP. ProxyCredentials só é válido quando AuthenticationTarget contém RPC_C_HTTP_AUTHN_TARGET_PROXY.
NumberOfProxyAuthnSchemes
O número de elementos na matriz ProxyAuthnSchemes ao autenticar em um servidor proxy HTTP. NumberOfProxyAuthnSchemes só é válido quando AuthenticationTarget contém RPC_C_HTTP_AUTHN_TARGET_PROXY.
ProxyAuthnSchemes
Um ponteiro para uma matriz de esquemas de autenticação que o cliente está disposto a usar ao autenticar em um servidor proxy HTTP. Cada elemento da matriz pode conter uma das seguintes constantes. ProxyAuthnSchemes só é válido quando AuthenticationTarget contém 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
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.
Requisitos
Cliente mínimo com suporte | Windows 7 [somente aplicativos da área de trabalho] |
Servidor mínimo com suporte | Windows Server 2008 R2 [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
RPC_HTTP_TRANSPORT_CREDENTIALS_V2