RPC_HTTP_TRANSPORT_CREDENTIALS_A-Struktur (rpcdce.h)

Die RPC_HTTP_TRANSPORT_CREDENTIALS-Struktur definiert zusätzliche Anmeldeinformationen für die Authentifizierung bei einem RPC-Proxyserver bei Verwendung von RPC/HTTP.

Syntax

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;

Member

TransportCredentials

Ein Zeiger auf eine SEC_WINNT_AUTH_IDENTITY Struktur, die den Benutzernamen, die Domäne und das Kennwort für den Benutzer enthält.

Flags

Eine Gruppe von Flags, die mit dem bitweisen OR-Operator kombiniert werden können.

Wert Bedeutung
RPC_C_HTTP_FLAG_USE_SSL
Weist RPC an, SSL für die Kommunikation mit dem RPC-Proxy zu verwenden.
RPC_C_HTTP_FLAG_USE_FIRST_AUTH_SCHEME
Bei Festlegung wählt RPC das erste Schema im AuthnSchemes-Array aus und versucht, sich beim RPC-Proxy zu authentifizieren. Wenn der RPC-Proxy das ausgewählte Authentifizierungsschema nicht unterstützt, schlägt der Aufruf fehl. Wenn er nicht festgelegt ist, fragt der RPC-Client den RPC-Proxy nach unterstützten Authentifizierungsschemas ab und wählt eines aus.

AuthenticationTarget

Gibt das Authentifizierungsziel an.

Sollte auf einen oder beide der folgenden Werte festgelegt werden:

Wert Bedeutung
RPC_C_HTTP_AUTHN_TARGET_SERVER
Authentifizieren Sie sich beim RPC-Proxy, bei dem es sich aus HTTP-Sicht um den HTTP-Server handelt. Dies ist der häufigste Wert.
RPC_C_HTTP_AUTHN_TARGET_PROXY
Authentifizieren Sie sich beim HTTP-Proxy. Dieser Wert ist ungewöhnlich.

NumberOfAuthnSchemes

Die Anzahl der Elemente im AuthnScheme-Array .

AuthnSchemes

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 ). Dieser Member 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.

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 Anmeldeinformationen für Benutzer nur verwendet, wenn eine oder beide der folgenden Bedingungen zutreffen:

  • Der Aufrufer hat die Verwendung von SSL angefordert und das Element ServerCertificateSubject verwendet. In diesem Szenario wird sichergestellt, dass Anmeldeinformationen sowohl während der Übertragung als auch am endgültigen Ziel geschützt werden, selbst 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 auf den schwachen LM-Hash. Darüber hinaus werden Kunden empfohlen, Stufe 3 oder höher zu verwenden, wodurch NTLMv2 versucht wird.
Wenn die Unicode-Version der RpcBindingSetAuthInfoEx-Funktion verwendet wird, müssen auch Unicode-Versionen der RPC_HTTP_TRANSPORT_CREDENTIALS - und SEC_WINNT_AUTH_IDENTITY-Strukturen bereitgestellt werden, und das Flags-Element in TransportCredentials muss auf SEC_WINNT_AUTH_IDENTITY_UNICODE festgelegt werden. Wenn die ANSI-Version der RpcBindingSetAuthInfoEx-Funktion verwendet wird, müssen ANSI-Versionen von RPC_HTTP_TRANSPORT_CREDENTIALS - und SEC_WINNT_AUTH_IDENTITY-Strukturen bereitgestellt werden, und das Flags-Element in TransportCredentials muss auf SEC_WINNT_AUTH_IDENTITY_ANSI festgelegt werden.

Anforderungen

Anforderung Wert
Unterstützte Mindestversion (Client) Windows XP mit SP1 [nur Desktop-Apps]
Unterstützte Mindestversion (Server) Windows Server 2003 [nur Desktop-Apps]
Kopfzeile rpcdce.h (rpc.h einschließen)

Weitere Informationen

Prinzipalnamen

RPC_HTTP_TRANSPORT_CREDENTIALS_V2

RPC_HTTP_TRANSPORT_CREDENTIALS_V3

RPC_SECURITY_QOS

RPC_SECURITY_QOS_V2

RPC_SECURITY_QOS_V3

Remoteprozeduraufrufe mit dem RPC-über-HTTP-Proxy

RpcBindingSetAuthInfoEx

RpcCertGeneratePrincipalName

SEC_WINNT_AUTH_IDENTITY