RPC_SECURITY_QOS_V5_A-Struktur (rpcdce.h)
Die RPC_SECURITY_QOS_V5-Struktur definiert Die Sicherheitsqualitätseinstellungen der Version 5 für ein Bindungshandle. Weitere Informationen finden Sie unter Hinweise zur Versionsverfügbarkeit unter Windows-Editionen.
Syntax
typedef struct _RPC_SECURITY_QOS_V5_A {
unsigned long Version;
unsigned long Capabilities;
unsigned long IdentityTracking;
unsigned long ImpersonationType;
unsigned long AdditionalSecurityInfoType;
union {
RPC_HTTP_TRANSPORT_CREDENTIALS_A *HttpCredentials;
} u;
void *Sid;
unsigned int EffectiveOnly;
void *ServerSecurityDescriptor;
} RPC_SECURITY_QOS_V5_A, *PRPC_SECURITY_QOS_V5_A;
Member
Version
Version der verwendeten RPC_SECURITY_QOS-Struktur . In diesem Thema wird Version 5 der RPC_SECURITY_QOS-Struktur dokumentiert. Weitere Versionen finden Sie unter RPC_SECURITY_QOS, RPC_SECURITY_QOS_V2, RPC_SECURITY_QOS_V3 und RPC_SECURITY_QOS_V4 .
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 |
---|---|
|
Es sind keine anbieterspezifischen Funktionen erforderlich. |
|
Die RPC-Laufzeit fordert die gegenseitige Authentifizierung vom Sicherheitsanbieter an. Einige Sicherheitsanbieter unterstützen keine gegenseitige Authentifizierung. Wenn der Sicherheitsanbieter keine gegenseitige Authentifizierung 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. wiederum schlägt ein RPC-Aufruf fehl, wenn der SSP meldet, dass er keine Option aushandeln konnte. Es ist jedoch bekannt, dass einige Sicherheitsanbieter die erfolgreiche Aushandlung einer Option melden, auch wenn die Option nicht erfolgreich ausgehandelt wurde. Beispielsweise meldet NTLM 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, ob der jeweilige SSP verwendet wird, um sein Verhalten in Bezug auf Sicherheitsoptionen zu bestimmen.
|
|
Derzeit nicht implementiert. |
|
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. |
|
Die RPC-Runtime auf dem Client ignoriert einen Fehler, 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 Unter Windows XP und früheren Clienteditionen nicht unterstützt, unter Windows 2000 und früheren Servereditionen nicht unterstützt.
|
|
Der Server befindet sich lokal auf dem Computer, der den RPC-Aufruf vornimmt. In diesem Fall weist RPC die Endpunktzuordnung an, nur Endpunkte abzurufen, 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 Unter Windows XP und früheren Clienteditionen nicht unterstützt, unter Windows 2000 und früheren Servereditionen nicht unterstützt.
|
IdentityTracking
Der Kontextnachverfolgungsmodus als einer der folgenden Werte.
Wert | Bedeutung |
---|---|
|
Der Sicherheitskontext wird nur einmal erstellt und während der gesamten Kommunikation nie überarbeitet, auch wenn er von der Clientseite geändert wird. Dies ist das Standardverhalten, wenn RPC_SECURITY_QOS_V5 nicht angegeben ist. |
|
Der Sicherheitskontext 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
Die Ebene, auf der der Serverprozess die Identität des Clients annehmen kann.
Wert | Bedeutung |
---|---|
|
Verwendet die Standardidentitätswechselebene. |
|
Der Client stellt keine Identifikationsinformationen für den Server bereit. Der Server kann die Identität des Clients nicht annehmen oder den Client identifizieren. Viele Server weisen Aufrufe mit diesem Identitätswechseltyp ab. |
|
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, aber keine Identität des Clients 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.
|
|
Der Server kann die Identität des Sicherheitskontexts des Clients auf seinem lokalen System annehmen, aber nicht auf Remotesystemen. |
|
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
Der Typ der zusätzlichen Anmeldeinformationen , die in u union vorhanden sind. Die folgenden Konstanten werden unterstützt:
Unterstützte Konstanten | Bedeutung |
---|---|
|
In u union werden keine zusätzlichen Anmeldeinformationen übergeben. |
|
Das HttpCredentials-Element der u union zeigt 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 an RPC in Form einer RPC_HTTP_TRANSPORT_CREDENTIALS-Struktur übergeben werden sollen. Wird verwendet, wenn das AdditionalSecurityInfoType-Element auf RPC_C_AUTHN_INFO_TYPE_HTTP festgelegt ist.
Sid
Zeiger auf eine Sicherheits-ID (SID). Die SID ist eine Alternative zum ServerPrincName-Member , und es kann nur ein Element angegeben werden. Der Sid-Member kann nicht auf null festgelegt werden, wenn der Sicherheitsanbieter der SCHANNEL-SSP ist. Einige Protokollsequenzen verwenden sid intern aus Sicherheitsgründen, andere einen ServerPrincName. Beispielsweise verwendet ncalrpc intern eine Sid , und wenn der Aufrufer sowohl die SID als auch den ServerPrincName kennt, kann ein Aufruf mit ncalrpc in einigen Fällen viel schneller abgeschlossen werden, wenn die SID übergeben wird. Im Gegensatz dazu verwenden die ncacn_ und ncadg_ Protokollsequenzen intern einen ServerPrincName und können daher Aufrufe schneller ausführen, wenn serverPrincName bereitgestellt wird.
EffectiveOnly
Wenn festgelegt, werden vom Server nur aktivierte Berechtigungen angezeigt.
ServerSecurityDescriptor
Ein Zeiger auf die SECURITY_DESCRIPTOR , die den Server identifiziert. Sie ist für die gegenseitige Authentifizierung erforderlich.
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.
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.
Anforderungen
Anforderung | Wert |
---|---|
Unterstützte Mindestversion (Client) | Windows 8 [nur Desktop-Apps] |
Unterstützte Mindestversion (Server) | Windows Server 2012 [nur Desktop-Apps] |
Kopfzeile | rpcdce.h (include Rpc.h) |
Weitere Informationen
RPC_BINDING_HANDLE_SECURITY_V1