Vypnutí zabezpečení aktivace
Aktivace obvykle používá výchozí nastavení zabezpečení. Zabezpečení aktivace však můžete řídit zadáním struktury COAUTHINFO, která je členem struktury COSERVERINFO předávané aktivačním funkcím. Pokud klient určuje úroveň ověřování RPC_C_AUTHN_LEVEL_NONE ve struktuře COAUTHINFO, ověřování se nepokusí. Jinak dojde k pokusu o zabezpečenou aktivaci a pokud se ověření nezdaří, aktivace se nezdaří.
Pokud klient nezadá explicitní strukturu COAUTHINFO a místo toho nastaví ukazatel na NULL, COM se pokusí ověřit klienta. Pokud nemůže ověřit klienta, COM zkontroluje popisovač zabezpečení oprávnění spuštění, aby zjistilo, zda existuje NULL DACL nebo ACL, který umožňuje přístup pro všechny. Pokud je tato kontrola úspěšná, server se spustí. Proto i v případě, že klient nezadá strukturu COAUTHINFO, může dojít k nezabezpečené aktivaci, když to server povolí.
Poznámka
Aby mohli neověření uživatelé sítě spouštět aplikaci COM, musí role aplikace obsahovat Anonymního uživatele. Počínaje systémem Windows Server 2003 ve výchozím nastavení anonymní uživatel není součástí skupiny Všichni.
Proč chce klient vypnout zabezpečení aktivace explicitně, i když nezabezpečená aktivace nakonec proběhne, pokud to server povolí? Protože explicitní vypnutí zabezpečení aktivace zvyšuje výkon, když klient nechce nebo nepotřebuje kontroly zabezpečení.
Abyste explicitně vypnuli zabezpečení aktivace, musíte udělat následující věci:
- Klient musí specifikovat úroveň ověřování RPC_C_AUTHN_LEVEL_NONE ve struktuře COAUTHINFO, která je členem struktury COSERVERINFO dodané aktivační funkci.
- Klient musí zadat úroveň zosobnění RPC_C_IMP_LEVEL_IMPERSONATE ve struktuře COAUTHINFO, která je členem struktury COSERVERINFO dodané aktivační funkci. Pokud tato hodnota není předána, získáte RPC_S_SERVER_UNAVAILABLE.
- Server musí zadat Everyone pro výchozí oprávnění ke spuštění. Doporučeným způsobem provedení této úlohy je použití Dcomcnfg.exe následujícím způsobem:
- Spusťte Dcomcnfg.exe.
- Na stránce Aplikace vyberte aplikaci, která představuje server. Stiskněte tlačítko Vlastnosti (nebo poklikejte na vybranou aplikaci).
- Na stránce vlastností Zabezpečení klikněte na tlačítko Použít vlastní oprávnění spuštění.
- Klikněte na tlačítko Upravit v oblasti Oprávnění ke spuštění.
- V dialogovém okně Oprávnění hodnoty registru klikněte na tlačítko Přidat.
- V seznamu vyberte položku Všichni.
- V seznamu Typ přístupu zvolte Povolit spuštění.
- Klikněte na tlačítko OK.
Poznámka
V systému Windows Server 2003 zahrnuje funkce ověřování pro systémovou aplikaci COM+ hodnotu EOAC_DISABLE_AAA. Tato hodnota, která zakáže aktivace typu activate-as-activator (AAA), se používá při volání CoInitializeSecurity při spuštění systémové aplikace. Nastavení možnosti ověřování na EOAC_DISABLE_AAA umožňuje aplikaci, která běží pod privilegovaným účtem (například LocalSystem), aby se zabránilo použití identity ke spouštění nedůvěryhodných komponent.
Související témata