Freigeben über


Deaktivieren der Aktivierungssicherheit

Normalerweise werden bei der Aktivierung Standardsicherheitseinstellungen verwendet. Sie können jedoch die Aktivierungssicherheit steuern, indem Sie eine COAUTHINFO-Struktur angeben, die ein Mitglied der COSERVERINFO-Struktur ist, die an die Aktivierungsfunktionen übergeben wird. Wenn der Client eine Authentifizierungsebene von RPC_C_AUTHN_LEVEL_NONE in der COAUTHINFO-Struktur angibt, wird keine Authentifizierung versucht. Andernfalls wird versucht, eine sichere Aktivierung durchzuführen, und wenn die Authentifizierung fehlschlägt, schlägt die Aktivierung fehl.

Wenn der Client keine explizite COAUTHINFO-Struktur angibt und stattdessen den Zeiger auf NULL festlegt, versucht COM, den Client zu authentifizieren. Wenn der Client nicht authentifiziert werden kann, überprüft COM den Sicherheitsdeskriptor der Startberechtigung, um festzustellen, ob eine NULL-DACL oder eine ACL vorhanden ist, die den Zugriff auf "Jeder" zulässt. Wenn diese Überprüfung erfolgreich ist, wird der Server gestartet. Selbst wenn der Client keine COAUTHINFO-Strukturangibt, kann daher eine unsichere Aktivierung erfolgen, wenn der Server dies zulässt.

Hinweis

Damit nicht authentifizierte Netzwerkbenutzer eine COM-Anwendung ausführen können, müssen die Anwendungsrollen den anonymen Benutzer enthalten. Ab Windows Server 2003 ist der Anonyme Benutzer standardmäßig nicht in der Gruppe Jeder enthalten.

 

Warum sollte ein Client die Aktivierungssicherheit explizit deaktivieren, obwohl die unsichere Aktivierung irgendwann erfolgt, wenn der Server dies zulässt? Da das explizite Deaktivieren der Aktivierungssicherheit die Leistung erhöht, wenn der Client keine Sicherheitsüberprüfungen möchte oder benötigt.

Die folgenden Schritte müssen ausgeführt werden, um die Aktivierungssicherheit explizit zu deaktivieren:

  • Der Client muss eine Authentifizierungsebene von RPC_C_AUTHN_LEVEL_NONE in der COAUTHINFO-Struktur angeben, die ein Mitglied der COSERVERINFO-Struktur ist, die für die Aktivierungsfunktion bereitgestellt wird.
  • Der Client muss eine Identitätswechselebene von RPC_C_IMP_LEVEL_IMPERSONATE in der COAUTHINFO-Struktur angeben, die ein Mitglied der COSERVERINFO-Struktur ist, die für die Aktivierungsfunktion bereitgestellt wird. Wenn dieser Wert nicht übergeben wird, erhalten Sie RPC_S_SERVER_UNAVAILABLE.
  • Der Server muss für Standardstartberechtigungen"Jeder" angeben. Die empfohlene Methode zum Ausführen dieser Aufgabe besteht darin, Dcomcnfg.exe wie folgt zu verwenden:
    1. Führen Sie "Dcomcnfg.exe" aus.
    2. Wählen Sie auf der Seite Anwendungen die Anwendung aus, die den Server darstellt. Klicken Sie auf die Schaltfläche Eigenschaften (oder doppelklicken Sie auf die ausgewählte Anwendung).
    3. Klicken Sie auf der Eigenschaftenseite Sicherheit auf die Schaltfläche Benutzerdefinierte Startberechtigungen verwenden .
    4. Klicken Sie im Bereich Startberechtigungen auf die Schaltfläche Bearbeiten.
    5. Klicken Sie im Dialogfeld Registrierungswertberechtigungen auf die Schaltfläche Hinzufügen .
    6. Wählen Sie im Listenfeld den Eintrag für Jeder aus.
    7. Wählen Sie im Listenfeld Zugriffstyp die Option Start zulassen aus.
    8. Klicken Sie auf die Schaltfläche OK .

Hinweis

In Windows Server 2003 enthält die Authentifizierungsfunktion für die COM+-Systemanwendung den Wert EOAC_DISABLE_AAA. Dieser Wert, der aktivierungsbasierte Aktivierungen (Activate-as-Activator, AAA) deaktiviert, wird beim Starten der Systemanwendung im CoInitializeSecurity-Aufruf verwendet. Wenn Sie die Authentifizierungsfunktion auf EOAC_DISABLE_AAA festlegen, kann eine Anwendung, die unter einem privilegierten Konto (z. B. LocalSystem) ausgeführt wird, verhindern, dass ihre Identität zum Starten nicht vertrauenswürdiger Komponenten verwendet wird.

 

Deaktivieren der Anrufsicherheit