RPC_HTTP_TRANSPORT_CREDENTIALS_V3_A-Struktur (rpcdce.h)
Die RPC_HTTP_TRANSPORT_CREDENTIALS_V3-Struktur definiert zusätzliche Anmeldeinformationen für die Authentifizierung bei einem RPC-Proxyserver oder HTTP-Proxyserver, wenn RPC/HTTP verwendet wird.
RPC_HTTP_TRANSPORT_CREDENTIALS_V3 erweitert RPC_HTTP_TRANSPORT_CREDENTIALS_V2 , indem beliebige Anmeldeinformationsformulare verwendet werden können.
Syntax
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;
Members
TransportCredentials
Ein Zeiger auf ein undurchsichtiges Authentifizierungshandle in Form einer RPC_AUTH_IDENTITY_HANDLE-Struktur .
Flags
Eine Gruppe von Flags, die mit dem bitweisen OR-Operator kombiniert werden können.
AuthenticationTarget
Gibt das Authentifizierungsziel an.
Sollte auf einen oder beide der folgenden Werte festgelegt werden:
NumberOfAuthnSchemes
Die Anzahl der Elemente im AuthnScheme-Array .
AuthnSchemes
Ein Zeiger auf ein Array von Authentifizierungsschemas, das der Client verwenden möchte. Jedes Element des Arrays kann eine der folgenden Konstanten enthalten:
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 werden RPC_C_HTTP_AUTHN_SCHEME_NEGOTIATE und RPC_C_HTTP_AUTHN_SCHEME_DIGEST als Konstanten definiert, aber derzeit nicht unterstützt. Anrufer sollten sie nicht angeben. Dies führt zu RPC_S_CANNOT_SUPPORT Fehler. Jede Konstante kann einmal angegeben werden. RPC überprüft diese Einschränkung aus Leistungsgründen nicht, aber die Angabe einer Konstanten mehr als einmal führt zu nicht definierten Ergebnissen.
Der Algorithmus für die Auswahl des tatsächlichen Authentifizierungsschemas lautet wie folgt:
Wenn RPC_C_HTTP_FLAG_USE_FIRST_AUTH_SCHEME angegeben ist, wird das erste Authentifizierungsschema ausgewählt. Wenn sie vom Server nicht unterstützt wird, schlägt die Verbindungsherstellung fehl. Wenn RPC_C_HTTP_FLAG_USE_FIRST_AUTH_SCHEME nicht angegeben ist, versucht der RPC-Client zunächst eine anonyme Verbindung mit dem RPC-Proxy. Wenn IIS die Authentifizierungsanforderung zurückgibt, wählt der RPC-Client das vom Server bevorzugte Authentifizierungsschema aus, wenn es sich ebenfalls im AuthnScheme-Array befindet. Wenn sich das vom Server bevorzugte Schema nicht im AuthnScheme-Array befindet, wird das AuthnScheme-Array von Anfang bis Ende durchlaufen, und wenn ein Schema gefunden wird, das auch vom Server unterstützt wird, wird dieses Authentifizierungsschema verwendet.
ServerCertificateSubject
Enthält eine optionale Zeichenfolge mit dem erwarteten Serverprinzipalnamen. Der Prinzipalname hat das gleiche Format wie für RpcCertGeneratePrincipalName (weitere Informationen finden Sie unter Prinzipalnamen ). Dieses Element wird nur verwendet, wenn SSL verwendet wird. In solchen Fällen wird das Serverzertifikat anhand des generierten Prinzipalnamens überprüft. Wenn sie nicht übereinstimmen, wird ein Fehler zurückgegeben. Mit diesem Member können Clients den RPC-Proxy authentifizieren.
ProxyCredentials
Ein Zeiger auf ein undurchsichtiges Authentifizierungshandle in Form einer RPC_AUTH_IDENTITY_HANDLE-Struktur bei der Authentifizierung auf einem HTTP-Proxyserver. ProxyCredentials ist nur gültig, wenn AuthenticationTargetRPC_C_HTTP_AUTHN_TARGET_PROXY enthält.
NumberOfProxyAuthnSchemes
Die Anzahl der Elemente im ProxyAuthnSchemes-Array bei der Authentifizierung für einen HTTP-Proxyserver. NumberOfProxyAuthnSchemes ist nur gültig, wenn AuthenticationTargetRPC_C_HTTP_AUTHN_TARGET_PROXY enthält.
ProxyAuthnSchemes
Ein Zeiger auf ein Array von Authentifizierungsschemas, das der Client bei der Authentifizierung auf einem HTTP-Proxyserver verwenden möchte. Jedes Element des Arrays kann eine der folgenden Konstanten enthalten. ProxyAuthnSchemes ist nur gültig, wenn AuthenticationTargetRPC_C_HTTP_AUTHN_TARGET_PROXY enthält.
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
Hinweise
Wenn das TransportCredentials-ElementNULL und das Authentifizierungsschema NTLM ist, werden die Anmeldeinformationen des derzeit angemeldeten Benutzers verwendet. Um die Offenlegung von Benutzeranmeldeinformationen im Netzwerk durch einen schwachen LM-Hash zu vermeiden, werden Benutzeranmeldeinformationen nur verwendet, wenn eine oder beide der folgenden Bedingungen zutrifft:
- Der Aufrufer hat die Verwendung von SSL angefordert und das Element ServerCertificateSubject verwendet. Dieses Szenario garantiert, dass Anmeldeinformationen sowohl bei der Übertragung als auch am enden Ziel geschützt werden, auch wenn ein schwacher Hash verwendet wird.
- Der lncompatibilitylevel-Schlüssel ist auf 2 oder höher festgelegt. Dies bewirkt, dass der NTLM-Sicherheitsanbieter nur den starken NT-Hash ausgibt oder darauf reagiert, nicht den schwachen LM-Hash. Darüber hinaus werden Kunden ermutigt, Stufe 3 oder höher zu verwenden, wodurch NTLMv2 versucht wird.
Anforderungen
Unterstützte Mindestversion (Client) | Windows 7 [nur Desktop-Apps] |
Unterstützte Mindestversion (Server) | Windows Server 2008 R2 [nur Desktop-Apps] |
Kopfzeile | rpcdce.h (include Rpc.h) |
Weitere Informationen
RPC_HTTP_TRANSPORT_CREDENTIALS
RPC_HTTP_TRANSPORT_CREDENTIALS_V2