RPC_SECURITY_QOS_V2_A-Struktur (rpcdce.h)

Die RPC_SECURITY_QOS_V2-Struktur definiert Sicherheitsqualitätseinstellungen der Version 2 für ein Bindungshandle. Informationen zur Versionsverfügbarkeit in Windows-Editionen finden Sie unter Hinweise.

Syntax

typedef struct _RPC_SECURITY_QOS_V2_A {
  unsigned long Version;
  unsigned long Capabilities;
  unsigned long IdentityTracking;
  unsigned long ImpersonationType;
  unsigned long AdditionalSecurityInfoType;
  union {
    RPC_HTTP_TRANSPORT_CREDENTIALS_A *HttpCredentials;
  } u;
} RPC_SECURITY_QOS_V2_A, *PRPC_SECURITY_QOS_V2_A;

Member

Version

Version der verwendeten RPC_SECURITY_QOS-Struktur . In diesem Thema wird Version 2 der RPC_SECURITY_QOS-Struktur dokumentiert. Weitere Versionen finden Sie unter RPC_SECURITY_QOS, RPC_SECURITY_QOS_V3, RPC_SECURITY_QOS_V4 und RPC_SECURITY_QOS_V5 .

Capabilities

Sicherheitsdienste, die für die Anwendung bereitgestellt werden. Funktionen sind eine Reihe von Flags, die mit dem bitweisen OR-Operator kombiniert werden können.

Wert Bedeutung
RPC_C_QOS_CAPABILITIES_DEFAULT
Wird verwendet, wenn keine anbieterspezifischen Funktionen erforderlich sind.
RPC_C_QOS_CAPABILITIES_MUTUAL_AUTH
Wenn Sie dieses Flag angeben, wird die RPC-Laufzeit die gegenseitige Authentifizierung vom Sicherheitsanbieter anfordern. Einige Sicherheitsanbieter unterstützen die gegenseitige Authentifizierung nicht. Wenn der Sicherheitsanbieter die gegenseitige Authentifizierung nicht unterstützt oder die Identität des Servers nicht eingerichtet werden kann, schlägt ein Remoteprozeduraufruf eines solchen Servers mit einem Fehler RPC_S_SEC_PKG_ERROR fehl.
Hinweis RPC verwendet den SSP, um anzugeben, welche Sicherheitsoptionen erfolgreich ausgehandelt wurden. RPC schlägt wiederum einen Aufruf fehl, für den der SSP meldet, dass er keine Option aushandeln konnte. Einige Sicherheitsanbieter sind jedoch dafür bekannt, die erfolgreiche Aushandlung einer Option zu melden, auch wenn die Option nicht erfolgreich ausgehandelt wurde. NTLM meldet beispielsweise eine erfolgreiche Aushandlung der gegenseitigen Authentifizierung aus Gründen der Abwärtskompatibilität, auch wenn die gegenseitige Authentifizierung nicht unterstützt wird. Überprüfen Sie den jeweiligen SSP, der verwendet wird, um sein Verhalten in Bezug auf Sicherheitsoptionen zu ermitteln.
 
RPC_C_QOS_CAPABILITIES_MAKE_FULLSIC
Derzeit nicht implementiert.
RPC_C_QOS_CAPABILITIES_ANY_AUTHORITY
Akzeptiert die Anmeldeinformationen des Clients, auch wenn die Zertifizierungsstelle nicht in der Liste der vertrauenswürdigen Zertifizierungsstellen des Servers enthalten ist. Diese Konstante wird nur vom SCHANNEL-SSP verwendet.
RPC_C_QOS_CAPABILITIES_IGNORE_DELEGATE_FAILURE
Wenn angegeben, weist dieses Flag die RPC-Runtime auf dem Client an, einen Fehler zu ignorieren, um einen Sicherheitskontext einzurichten, der die Delegierung unterstützt. Wenn der Client die Delegierung anfragt und das Sicherheitssystem keinen Sicherheitskontext einrichten kann, der die Delegierung unterstützt, wird normalerweise ein Fehler RPC_S_SEC_PKG_ERROR zurückgegeben. wenn dieses Flag angegeben ist, wird kein Fehler zurückgegeben.
Hinweis Nicht unterstützt unter Windows XP und früheren Clienteditionen, nicht unterstützt unter Windows 2000 und früheren Servereditionen.
 
RPC_C_QOS_CAPABILITIES_LOCAL_MA_HINT
Wenn angegeben, gibt dieses Flag für RPC an, dass der Server lokal für den Computer ist, der den RPC-Aufruf ausgibt. In dieser Situation weist RPC den Endpunktzuordnungser an, nur Endpunkte aufzunehmen, die vom Prinzipal registriert sind, der in den Membern ServerPrincName oder Sid angegeben ist (diese Member sind nur in RPC_SECURITY_QOS_V3, RPC_SECURITY_QOS_V4 und RPC_SECURITY_QOS_V5 verfügbar). Weitere Informationen finden Sie unter Hinweise.
Hinweis Nicht unterstützt unter Windows XP und früheren Clienteditionen, nicht unterstützt unter Windows 2000 und früheren Servereditionen.
 

IdentityTracking

Legt den Kontextnachverfolgungsmodus fest. Sollte auf einen der in der folgenden Tabelle dargestellten Werte festgelegt werden.

Wert Bedeutung
RPC_C_QOS_IDENTITY_STATIC
Der Sicherheitskontext wird nur einmal erstellt und wird während der gesamten Kommunikation nie überarbeitet, auch wenn er von der Clientseite geändert wird. Dies ist das Standardverhalten, wenn RPC_SECURITY_QOS_V2 nicht angegeben ist.
RPC_C_QOS_IDENTITY_DYNAMIC
Der Kontext wird immer dann überarbeitet, wenn die ModifiedId im Token des Clients geändert wird. Alle Protokolle verwenden die ModifiedId (siehe Hinweis).

Windows 2000: Alle Remoteprotokolle (alle Protokolle außer ncalrpc) verwenden die AuthenticationID, auch als LogonId bezeichnet, um Änderungen an der Clientidentität nachzuverfolgen. Das ncalrpc-Protokoll verwendet ModifiedId.

ImpersonationType

Ebene, auf der der Serverprozess die Identität des Clients annehmen kann.

Wert Bedeutung
RPC_C_IMP_LEVEL_DEFAULT
Verwendet die Standardidentitätswechselebene.
RPC_C_IMP_LEVEL_ANONYMOUS
Der Client stellt dem Server keine Identifikationsinformationen zur Verfügung. Der Server kann die Identität des Clients nicht annehmen oder den Client identifizieren. Viele Server lehnen Anrufe mit diesem Identitätswechseltyp ab.
RPC_C_IMP_LEVEL_IDENTIFY
Der Server kann die Identität des Clients abrufen und die Identität des Clients annehmen, um Access Control List-Überprüfungen (ACL) durchzuführen, kann jedoch die Identität des Clients nicht annehmen. Weitere Informationen finden Sie unter Identitätswechselebenen .
Hinweis Einige Sicherheitsanbieter behandeln diesen Identitätswechseltyp möglicherweise als gleichwertig mit RPC_C_IMP_LEVEL_IMPERSONATE.
 
RPC_C_IMP_LEVEL_IMPERSONATE
Der Server kann die Identität des Sicherheitskontexts des Clients auf seinem lokalen System annehmen, aber nicht auf Remotesystemen.
RPC_C_IMP_LEVEL_DELEGATE
Der Server kann als der Client auftreten und dabei dessen Sicherheitskontext imitieren. Der Server kann auch ausgehende Aufrufe an andere Server tätigen, während er im Auftrag des Clients handelt. Der Server kann den Sicherheitskontext des Clients auf anderen Computern verwenden, um auf lokale und Remoteressourcen als Client zuzugreifen.

AdditionalSecurityInfoType

Gibt den Typ der zusätzlichen Anmeldeinformationen an, die in der u-Union vorhanden sind. Die folgenden Konstanten werden unterstützt:

Unterstützte Konstanten Bedeutung
0
In der Union u werden keine zusätzlichen Anmeldeinformationen übergeben.
RPC_C_AUTHN_INFO_TYPE_HTTP
Das HttpCredentials-Element der u-Union verweist auf eine RPC_HTTP_TRANSPORT_CREDENTIALS-Struktur . Dieser Wert kann nur verwendet werden, wenn die Protokollsequenz ncacn_http ist. Jede andere Protokollsequenz gibt RPC_S_INVALID_ARG zurück.

u

u.HttpCredentials

Zusätzlicher Satz von Anmeldeinformationen, die in Form einer RPC_HTTP_TRANSPORT_CREDENTIALS-Struktur an RPC übergeben werden sollen. Wird verwendet, wenn das AdditionalSecurityInfoType-Element auf RPC_C_AUTHN_INFO_TYPE_HTTP festgelegt ist.

Hinweise

Die folgende Auflistung definiert die Verfügbarkeit von QOS-Versionen unter verschiedenen Windows-Betriebssystemen:

  • Version 1: Windows 2000 und höher.
  • Version 2: Windows XP mit Service Pack 1 (SP1) und höher.
  • Version 3: Windows Server 2003 und höher.
  • Version 4: Windows Vista und höher.
  • Version 5: Windows 8 und höher.
Windows-Editionen unterstützen auch Downlevelversionen. Windows Server 2003 unterstützt beispielsweise Version 3, aber auch die Versionen 1 und 2.

Die clientseitigen Sicherheitsfunktionen RpcBindingInqAuthInfoEx und RpcBindingSetAuthInfo verwenden die RPC_SECURITY_QOS-Struktur , um die Sicherheitsqualität des Diensts für ein Bindungshandle zu ermitteln oder festzulegen.

RPC unterstützt den RPC_C_QOS_CAPABILITIES_LOCAL_MA_HINT Hinweis (nicht unter Windows XP und früheren Clienteditionen unterstützt, nicht unter Windows 2000 und früheren Servereditionen unterstützt). Dieser Hinweis wird nur verwendet, wenn dynamische Endpunkte und die gegenseitige Authentifizierung verwendet werden. Darüber hinaus wird es für die ncadg_ Protokollsequenzen nicht unterstützt. Wenn dieses Flag für eine ncadg_ Protokollsequenz verwendet wird, oder ohne gegenseitige Authentifizierung, wird RPC_S_INVALID_ARG vom RpcBindingSetAuthInfoEx-Funktionsaufruf zurückgegeben. Dieses Flag soll einen Denial-of-Service-Angriff verhindern. Die Verwendung dieses Flags erzwingt die RPC-Runtime, den Endpunktzuordnungsmodul nur für Endpunkte anzufordern, die vom Prinzipal registriert sind, der in den Membern ServerPrincName oder Sid angegeben ist. Dadurch wird verhindert, dass ein Angreifer auf dem lokalen Computer versucht, Ihren RPC-Client zu verleiten, um eine Verbindung mit einem Spoofendpunkt herzustellen, der in der Endpunktzuordnung registriert ist. Da der Angriff nur lokal erfolgt (z. B. von einem Terminalservercomputer mit vielen Benutzern), funktioniert das Flag auch nur für lokale RPC-Aufrufe.

Hinweis Einige Sicherheitsanbieter, z. B. Kerberos, unterstützen den Delegierungs- und Identitätswechseltyp. Wenn der Client bei Windows-Editionen, die den Delegierungs-Identitätswechsel unterstützen, der Client die Delegierung angefordert hat, der Sicherheitsanbieter sie jedoch nicht bereitstellen kann, schlägt der Aufruf mit PRC_S_SEC_PKG_ERROR fehl, es sei denn, das RPC_C_QOS_CAPABILITIES_IGNORE_DELEGATE_FAILURE-Flag wird angegeben.
 

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 (include Rpc.h)

Weitere Informationen

RPC_HTTP_TRANSPORT_CREDENTIALS

RPC_SECURITY_QOS

RPC_SECURITY_QOS_V3

RPC_SECURITY_QOS_V4

RPC_SECURITY_QOS_V5

RpcBindingInqAuthInfoEx

RpcBindingSetAuthInfoEx