RPC_BINDING_HANDLE_SECURITY_V1_A-Struktur (rpcdce.h)

Die RPC_BINDING_HANDLE_SECURITY_V1-Struktur enthält die grundlegenden Sicherheitsoptionen, mit denen ein RPC-Bindungshandle erstellt werden kann.

Syntax

typedef struct _RPC_BINDING_HANDLE_SECURITY_V1_A {
  unsigned long             Version;
  unsigned char             *ServerPrincName;
  unsigned long             AuthnLevel;
  unsigned long             AuthnSvc;
  SEC_WINNT_AUTH_IDENTITY_A *AuthIdentity;
  RPC_SECURITY_QOS          *SecurityQos;
} RPC_BINDING_HANDLE_SECURITY_V1_A, *PRPC_BINDING_HANDLE_SECURITY_V1_A;

Member

Version

Die Version dieser Struktur. Für RPC_BINDING_HANDLE_SECURITY_V1 muss dies auf 1 festgelegt werden.

ServerPrincName

Zeiger auf eine Zeichenfolge, die den Serverprinzipalnamen enthält, auf den das Bindungshandle verweist. Der Inhalt des Namens und seine Syntax werden vom verwendeten Authentifizierungsdienst definiert.

AuthnLevel

Authentifizierungsebene für Remoteprozeduraufrufe, die mithilfe dieses Bindungshandles ausgeführt werden. Eine Liste der RPC-unterstützten Authentifizierungsstufen finden Sie unter Konstanten auf Authentifizierungsebene.

Wenn AuthnSvc auf RPC_C_AUTHN_NONE festgelegt ist, muss dieser Member ebenfalls auf RPC_C_AUTHN_NONE festgelegt werden.

AuthnSvc

Authentifizierungsdienst, der bei der Bindung verwendet werden soll.

Geben Sie RPC_C_AUTHN_NONE an, um die Authentifizierung für Remoteprozeduraufrufe mit dem Bindungshandle zu deaktivieren.

Wenn RPC_C_AUTHN_DEFAULT angegeben ist, verwendet die RPC-Laufzeitbibliothek den RPC_C_AUTHN_WINNT-Authentifizierungsdienst für Remoteprozeduraufrufe, die mithilfe des Bindungshandles ausgeführt werden.

Wenn AuthnLevel auf RPC_C_AUTHN_NONE festgelegt ist, muss dieser Member ebenfalls auf RPC_C_AUTHN_NONE festgelegt werden.

AuthIdentity

SEC_WINNT_AUTH_IDENTITY Struktur, die die Anmeldeinformationen für Authentifizierung und Autorisierung des Clients enthält, die für den ausgewählten Authentifizierungs- und Autorisierungsdienst geeignet sind.

SecurityQos

RPC_SECURITY_QOS Struktur, die die Sicherheitseinstellungen für die Dienstqualität für das Bindungshandle enthält.

Hinweis Eine Liste der von RPC unterstützten Authentifizierungsdienste finden Sie unter Authentication-Service Constants.
 

Hinweise

Wenn diese Struktur nicht an RpcBindingCreate übergeben wird, also wenn der Sicherheitsparameter von RpcBindingCreate auf NULL festgelegt ist, werden die folgenden Standardsicherheitsverhalten angenommen:

  • Für die Protokollsequenz ncalrpc (lokales RPC) verwendet RPC sicherheit auf Transportebene. Dies bedeutet, dass RPC die vom Windows-Kernel angebotenen Sicherheitsmechanismen verwendet, um Sicherheit zu bieten, und RPC den Server nicht authentifiziert, da er eine Verbindung mit der aktuellen Threadidentität herstellt. In diesem Fall ist die Identitätsnachverfolgung statisch, der Identitätswechseltyp auf "Identitätswechsel" und die Authentifizierungsebene auf "Datenschutz" festgelegt.
  • Für die Protokollsequenz ncacn_np verwendet RPC auch Sicherheit auf Transportebene. Wenn der Aufruf remote ist, verwendet RPC die Sicherheitsmechanismen, die von der Windows-Dateisystemumleitung bereitgestellt werden, und es gibt keine gegenseitige Authentifizierung. In diesem Fall ist die Identität die aktuelle Threadidentität, der Status der Identitätsnachverfolgung ist statisch, der Identitätswechseltyp auf "Identitätswechsel" festgelegt, und die Authentifizierungsebene wird durch die Richtlinien des Remotecomputers bestimmt.

    Wenn der Aufruf lokal ist, verwendet RPC die vom Named Pipe File System (NPFS) bereitgestellten Sicherheitsmechanismen, und es gibt auch keine gegenseitige Authentifizierung. In diesem Fall ist die Identität die aktuelle Threadidentität oder eine beliebige Identität, die über den Befehl "net use" für den Server eingerichtet wurde. Der Identitätsnachverfolgungsstatus ist dynamisch, der Identitätswechseltyp auf "Identitätswechsel" und die Authentifizierungsebene auf "Datenschutz" festgelegt.

  • Für die Protokollsequenzen ncacn_ip_tcp, ncacn_ip_udp und ncacn_http wird keine Sicherheit verwendet, wenn Sicherheit auf NULL festgelegt ist. Der Server führt keinen Identitätswechsel aus, und alle Daten werden als Klartext gesendet. Um maximalen Schutz für Daten zu bieten, muss die Anwendung immer Sicherheitsdaten bereitstellen.

In der folgenden Tabelle sind die Standardsicherheitseinstellungen für die verschiedenen Protokollsequenzen zusammengefasst, wenn der Security-Parameter von RpcBindingCreate auf NULL festgelegt ist.

Standardsicherheitseinstellungen ncalrpc lokale ncacn_np Remote-ncacn_np ncacn_ip_tcp, ncacn_ip_udp und ncacn_http
Sicherheitsmechanismus Windows-Kernel NPFS Dateisystemumleitung Keine
Authentifizierungsebene Datenschutz Datenschutz Serverrichtlinie abhängig Keine
Gegenseitige Authentifizierung? No No No No
Identitätswechseltyp Impersonate Impersonate Impersonate
Identitätsnachverfolgungstyp statischen Dynamisch statischen
Nur effektiv? Ja Nein
Anrufidentität Aktueller Thread Aktueller Thread Aktuelle Thread- oder Net Use-Einstellungen
 
Hinweis Wenn Sie Ihr Bindungshandle erstellen, indem Sie die RpcBindingFromStringBinding-API aufrufen, ist die Standardidentitätsnachverfolgung für ncalrpc ohne bestimmte Sicherheitseinstellungen dynamisch.

Wenn Sie ein Schnellbindungshandle erstellen, indem Sie die RpcBindingCreate-API aufrufen, ist die Standardidentitätsnachverfolgung für ncalrpc ohne bestimmte Sicherheitseinstellungen statisch.

Sie sollten sich der Unterschiede in diesen beiden APIs bewusst sein, wenn Sie zwischen ihnen in Ihrer Anwendung wechseln.

Nachdem das Bindungshandle erstellt wurde, können die APIs RpcBindingSetAuthInfo und RpcBindingSetAuthInfoEx verwendet werden, um die Einstellungen des Bindungshandles mit dieser Struktur zu ändern.

 

Anforderungen

Anforderung Wert
Unterstützte Mindestversion (Client) Windows Vista [nur Desktop-Apps]
Unterstützte Mindestversion (Server) Windows Server 2008 [nur Desktop-Apps]
Kopfzeile rpcdce.h (include Rpc.h)

Weitere Informationen

RPC_BINDING_HANDLE

RpcBindingBind

RpcBindingCreate