Teilen über


Sicherheitsdeckenverhandlung

Eine Sicherheitsdeckengruppe ist eine Gruppe von Werten, die die Sicherheitseinstellungen beschreiben, die für alle Proxys in einem Prozess oder nur für einen bestimmten Schnittstellenproxy gelten. Eine Sicherheitsdecke umfasst die folgenden Werte:

  • Authentifizierungsdienst
  • Autorisierungsdienst
  • Prinzipalname
  • Authentifizierungsebene
  • Identitätswechselebene
  • Authentifizierungsidentität
  • Fähigkeiten
  • Eine Zugriffssteuerungsliste (ACL) (nur Server)

Bei der Aushandlung von Sicherheitsdecken handelt es sich um den Prozess, den COM zum Auswählen der Sicherheitseinstellungen für einen Proxy verwendet, wenn er erstellt wird. Dieser Prozess umfasst den Vergleich der Sicherheitsdecken des Servers mit der Sicherheitsdecke des Clients und die Verwendung dieser Werte, um eine geeignete Standardsicherheitsdecken für den Proxy zu erstellen. In den folgenden Absätzen wird erläutert, wo die Sicherheitsdecken des Clients und der Server stammen, und beschreiben, wie COM die Sicherheitsdecken für den Proxy mithilfe der Sicherheitsdecken des Clients und der Sicherheitsdecken des Servers aushandelt.

Der Client und der Server können CoInitializeSecurity aufrufen, um ihre jeweiligen Sicherheitsdecken anzugeben. Wenn eine Anwendung CoInitializeSecurity nicht explizit aufruft, ruft COM sie implizit für die Anwendung unter Verwendung entsprechender Standardwerte auf. Weitere Informationen zu diesen Standardwerten finden Sie unter COM-Sicherheitsstandards.

Einige Parameter für CoInitializeSecurity gelten, wenn die Anwendung ein Server ist, und einige gelten, wenn die Anwendung ein Client ist. Wenn die Anwendung als Server fungiert, sind diese Parameter relevant: eine ACL, eine Liste der Authentifizierungsdienst-/Autorisierungsdienst-/Prinzipalnamen-Tupel und eine Authentifizierungsstufe. Der Aufruf eines Servers an CoInitializeSecuritybestimmt , ob implizit oder explizit, die Sicherheitsbeschriftung des Servers, die fest bleibt.

Wenn die Anwendung als Client fungiert, sind die folgenden Werte, die an CoInitializeSecurity übergeben werden, relevant: eine Authentifizierungsstufe, eine Identitätswechselstufe, die Authentifizierungsidentität und Funktionen. Der implizite oder explizite Aufruf eines Clients an CoInitializeSecurity gibt die Sicherheitsdecken an, die der Client möchte.

Wenn ein Proxy erstellt wird, verwendet COM die werte, die durch die Sicherheitsdecken des Servers und die Sicherheitsdecken des Clients angegeben werden, um eine Standardsicherheitsdecken auszuhandeln, die für den Proxy geeignet ist. COM wählt einen Authentifizierungsdienst aus, der sowohl auf dem Client als auch auf dem Server funktioniert. Der Autorisierungsdienst und der Prinzipalname werden für die Arbeit mit dem Authentifizierungsdienst ausgewählt. Für die Authentifizierungsstufe wählt COM die höheren Authentifizierungsstufen aus, die vom Client und dem Server angegeben werden. Die Identitätswechselebene und die von COM ausgewählten Funktionen sind die vom Client angegebenen Funktionen. Die Authentifizierungsidentität ist die vom Client für den ausgewählten Authentifizierungsdienst angegebene.

Nachdem die Standardsicherheitsdecke berechnet wurde, werden die Werte dem neu erstellten Proxy zugewiesen. Der Client kann die Sicherheitseinstellungen für den Proxy überschreiben, indem IClientSecurity::SetBlanketaufgerufen wird. Die für SetBlanket- angegebenen Werte werden nicht ausgehandelt; sie werden einfach dem angegebenen Proxy zugewiesen. Wenn jedoch Standardparameter (z. B. RPC_C_IMP_LEVEL_DEFAULT) an SetBlanket-übergeben werden, verwendet COM den zuvor beschriebenen Algorithmus für sicherheitsdeckende Aushandlung, um die Standardparameter zu berechnen.

Sicherheit in COM-