struttura RPC_HTTP_TRANSPORT_CREDENTIALS_V3_W (rpcdce.h)
La struttura RPC_HTTP_TRANSPORT_CREDENTIALS_V3 definisce credenziali aggiuntive per l'autenticazione a un server proxy RPC o a un server proxy HTTP quando si usa RPC/HTTP.
RPC_HTTP_TRANSPORT_CREDENTIALS_V3 estende RPC_HTTP_TRANSPORT_CREDENTIALS_V2 consentendo l'uso di moduli di credenziali arbitrari.
Sintassi
typedef struct _RPC_HTTP_TRANSPORT_CREDENTIALS_V3_W {
RPC_AUTH_IDENTITY_HANDLE TransportCredentials;
unsigned long Flags;
unsigned long AuthenticationTarget;
unsigned long NumberOfAuthnSchemes;
unsigned long *AuthnSchemes;
unsigned short *ServerCertificateSubject;
RPC_AUTH_IDENTITY_HANDLE ProxyCredentials;
unsigned long NumberOfProxyAuthnSchemes;
unsigned long *ProxyAuthnSchemes;
} RPC_HTTP_TRANSPORT_CREDENTIALS_V3_W, *PRPC_HTTP_TRANSPORT_CREDENTIALS_V3_W;
Members
TransportCredentials
Puntatore a un handle di autenticazione opaco sotto forma di struttura RPC_AUTH_IDENTITY_HANDLE .
Flags
Set di flag che possono essere combinati con l'operatore OR bit per bit.
AuthenticationTarget
Specifica la destinazione di autenticazione.
Deve essere impostato su uno o entrambi i valori seguenti:
NumberOfAuthnSchemes
Numero di elementi nella matrice AuthnScheme .
AuthnSchemes
Un puntatore a una matrice di schemi di autenticazione che il client è disposto a usare. Ogni elemento della matrice può contenere una delle costanti seguenti:
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 sono definite come costanti, ma non attualmente supportate. I chiamanti non devono specificarli; in questo modo si verifica RPC_S_CANNOT_SUPPORT errore. Ogni costante può essere specificata una sola volta. RPC non verifica questa restrizione per motivi di prestazioni, ma la specifica di una costante più volte produce risultati non definiti.
L'algoritmo per la scelta dello schema di autenticazione effettivo è il seguente:
Se viene specificato RPC_C_HTTP_FLAG_USE_FIRST_AUTH_SCHEME, viene scelto il primo schema di autenticazione. Se non è supportato dal server, l'impostazione della connessione non riesce. Se non viene specificato RPC_C_HTTP_FLAG_USE_FIRST_AUTH_SCHEME, il client RPC tenta prima di tutto la connessione anonima al proxy RPC. Se IIS restituisce una richiesta di autenticazione, il client RPC sceglie lo schema di autenticazione preferito dal server se si trova anche nella matrice AuthnScheme . Se lo schema preferito dal server non si trova nella matrice AuthnScheme , la matrice AuthnScheme verrà attraversata dall'inizio alla fine e, se viene rilevato uno schema supportato anche dal server, viene usato lo schema di autenticazione.
ServerCertificateSubject
Contiene una stringa facoltativa con il nome dell'entità server previsto. Il nome dell'entità è nello stesso formato di quello generato per RpcCertGeneratePrincipalName (vedere Nomi entità per altre informazioni). Questo membro viene usato solo quando viene usato SSL. In questi casi, il certificato del server viene controllato in base al nome dell'entità generata. Se non corrispondono, viene restituito un errore. Questo membro consente ai client di autenticare il proxy RPC.
ProxyCredentials
Puntatore a un handle di autenticazione opaco sotto forma di struttura RPC_AUTH_IDENTITY_HANDLE durante l'autenticazione in un server proxy HTTP. ProxyCredentials è valido solo quando AuthenticationTarget contiene RPC_C_HTTP_AUTHN_TARGET_PROXY.
NumberOfProxyAuthnSchemes
Numero di elementi nella matrice ProxyAuthnSchemes durante l'autenticazione in un server proxy HTTP. NumberOfProxyAuthnSchemes è valido solo quando AuthenticationTarget contiene RPC_C_HTTP_AUTHN_TARGET_PROXY.
ProxyAuthnSchemes
Un puntatore a una matrice di schemi di autenticazione che il client è disposto a usare durante l'autenticazione in un server proxy HTTP. Ogni elemento della matrice può contenere una delle costanti seguenti. ProxyAuthnSchemes è valido solo quando AuthenticationTarget contiene 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
Commenti
Se il membro TransportCredentials è NULL e lo schema di autenticazione è NTLM, vengono usate le credenziali dell'utente attualmente connesso. Per evitare di esporre le credenziali utente nella rete tramite un hash LM debole, le credenziali di accesso utente vengono usate solo se una o entrambe le condizioni seguenti sono vere:
- Il chiamante ha richiesto l'uso di SSL e ha usato il membro ServerCertificateSubject . Questo scenario garantisce che le credenziali siano protette sia in transito che nella destinazione finale, anche se viene usato un hash debole.
- La chiave lncompatibilitylevel è impostata su 2 o versione successiva. In questo modo il provider di sicurezza NTLM genera o risponde solo all'hash NT sicuro, non all'hash LM debole. Inoltre, i clienti sono invitati a usare il livello 3 o superiore, che tenterà NTLMv2.
Requisiti
Requisito | Valore |
---|---|
Client minimo supportato | Windows 7 [solo app desktop] |
Server minimo supportato | Windows Server 2008 R2 [solo app desktop] |
Intestazione | rpcdce.h (include Rpc.h) |
Vedi anche
RPC_HTTP_TRANSPORT_CREDENTIALS
RPC_HTTP_TRANSPORT_CREDENTIALS_V2