Festlegen der Sicherheit auf Schnittstellenproxyebene

Manchmal benötigt der Client eine differenzierte Kontrolle über die Sicherheit bei Aufrufen bestimmter Schnittstellen. Beispielsweise kann die Sicherheit auf einer niedrigen Ebene für den Prozess festgelegt werden, aber Für Aufrufe einer bestimmten Schnittstelle ist möglicherweise eine höhere Authentifizierungsebene erforderlich, z. B. die Verschlüsselung. Die Methoden der IClientSecurity-Schnittstelle ermöglichen es dem Client, die Sicherheitseinstellungen zu ändern, die aufrufen einer bestimmten Schnittstelle zugeordnet sind, indem die Sicherheitseinstellungen auf Schnittstellenproxyebene gesteuert werden.

Der Client kann ein vorhandenes Objekt für IClientSecurity abfragen und dann die IClientSecurity::QueryBlanket-Methode aufrufen, um die aktuellen Sicherheitseinstellungen für einen bestimmten Schnittstellenproxy zu ermitteln. Die IClientSecurity::SetBlanket-Methode kann verwendet werden, um die Sicherheitseinstellungen für einen einzelnen Schnittstellenproxy für das Objekt zu ändern, bevor eine der Methoden der Schnittstelle aufgerufen wird. Die neuen Einstellungen gelten für alle zukünftigen Aufrufer dieser bestimmten Schnittstelle. Die IClientSecurity::CopyProxy-Methode bietet dem Client eine Möglichkeit, einen Schnittstellenproxy zu kopieren, sodass nachfolgende Aufrufe von SetBlanket für die Kopie keine Aufrufer des ursprünglichen Proxys beeinflussen.

SetBlanket wird häufig verwendet, um die Authentifizierungsebene für einen bestimmten Schnittstellenproxy auf ein höheres Sicherheitsniveau zu erhöhen. In einigen Situationen kann es jedoch auch hilfreich sein, die Authentifizierungsebene für einen bestimmten Schnittstellenproxy zu senken. Für instance angenommen, die Standardauthentifizierungsebene für den Prozess ist ein anderer Wert als RPC_C_AUTHN_LEVEL_NONE, und Client und Server befinden sich in separaten Domänen, die einander nicht vertrauen. In diesem Fall schlagen Serveraufrufe fehl, es sei denn, der Client ruft SetBlanket auf, um die Authentifizierungsebene auf RPC_C_AUTHN_LEVEL_NONE zu senken.

Clients, die die vom Proxy-Manager bereitgestellte Standardimplementierung von IClientSecurity verwenden, können die Hilfsfunktionen CoQueryProxyBlanket, CoSetProxyBlanket und CoCopyProxy aufrufen, anstatt die IClientSecurity-Methoden direkt aufzurufen. Die Hilfsfunktionen vereinfachen den Code, sind aber etwas weniger effizient als das direkte Aufrufen der entsprechenden IClientSecurity-Methoden .

Die IClientSecurity-Schnittstelle wird vom Proxy-Manager lokal für den Client implementiert. Einige benutzerdefinierte Marshallobjekte unterstützen IClientSecurity möglicherweise nicht.

IClientSecurity funktioniert mit allen unterstützten Authentifizierungsdiensten (derzeit NTLMSSP, Schannel und dem Kerberos v5-Protokoll).

Festlegen der Sicherheit für COM-Anwendungen