Wyłączanie zabezpieczenia aktywacji
Zwykle aktywacja używa domyślnych ustawień zabezpieczeń. Można jednak kontrolować zabezpieczenia aktywacji, określając strukturę COAUTHINFO, która jest elementem członkowskim struktury COSERVERINFO, przekazywanej do funkcji aktywacji. Jeśli klient określa poziom uwierzytelniania RPC_C_AUTHN_LEVEL_NONE w strukturze COAUTHINFO, uwierzytelnianie nie jest podejmowane. W przeciwnym razie próba bezpiecznej aktywacji zostanie podjęta, a jeśli uwierzytelnianie zakończy się niepowodzeniem, aktywacja zakończy się niepowodzeniem.
Jeśli klient nie określi jawnej struktury COAUTHINFO i zamiast tego ustawi wskaźnik na wartość null, COM podejmie próbę uwierzytelnienia klienta. Jeśli nie może uwierzytelnić klienta, COM sprawdza deskryptor zabezpieczeń uprawnień uruchamiania, aby sprawdzić, czy istnieje NULL DACL lub listy kontroli dostępu ACL, która umożliwia dostęp do Wszystkich. Jeśli to sprawdzenie powiedzie się, serwer zostanie uruchomiony. W związku z tym nawet jeśli klient nie określi struktury COAUTHINFO, niezabezpieczona aktywacja może mieć miejsce, gdy serwer go zezwala.
Notatka
Aby umożliwić użytkownikom sieci nieuwierzytelnionym uruchamianie aplikacji COM, role aplikacji muszą zawierać użytkownika anonimowego. Począwszy od systemu Windows Server 2003, domyślnie użytkownik anonimowy nie jest uwzględniony w grupie Wszyscy.
Dlaczego klient chce jawnie wyłączyć zabezpieczenia aktywacji, mimo że niezabezpieczona aktywacja zostanie ostatecznie osiągnięta, jeśli serwer na to zezwala? Ponieważ jawne wyłączenie zabezpieczeń aktywacji zwiększa wydajność, gdy klient nie chce lub nie potrzebuje kontroli zabezpieczeń.
Aby jawnie wyłączyć zabezpieczenia aktywacji, należy wykonać następujące czynności:
- Klient musi określić poziom uwierzytelniania RPC_C_AUTHN_LEVEL_NONE w strukturze COAUTHINFO, która jest elementem członkowskim struktury COSERVERINFO dostarczonej do funkcji aktywacji.
- Klient musi określić poziom personifikacji RPC_C_IMP_LEVEL_IMPERSONATE w strukturze COAUTHINFO, która jest członkiem struktury COSERVERINFO dostarczonej do funkcji aktywacji. Jeśli ta wartość nie zostanie przekazana, otrzymasz RPC_S_SERVER_UNAVAILABLE.
- Serwer musi określić wszyscy dla domyślnych uprawnień uruchamiania. Zalecanym sposobem wykonania tego zadania jest użycie Dcomcnfg.exe w następujący sposób:
- Uruchom Dcomcnfg.exe.
- Na stronie Aplikacje wybierz aplikację reprezentującą serwer. Kliknij przycisk właściwości (lub kliknij dwukrotnie wybraną aplikację).
- Na stronie właściwości zabezpieczeń kliknij przycisk Użyj uprawnień uruchamiania niestandardowego.
- Kliknij przycisk Edytuj w obszarze Uprawnienia uruchamiania.
- W oknie dialogowym Uprawnienia wartości rejestru kliknij przycisk Dodaj.
- Wybierz wpis Wszyscy w polu listy.
- W polu listy Typ dostępu wybierz pozycję Zezwalaj na uruchamianie.
- Kliknij przycisk OK.
Notatka
W systemie Windows Server 2003 możliwość uwierzytelniania dla aplikacji systemu COM+ obejmuje wartość EOAC_DISABLE_AAA. Ta wartość, która wyłącza aktywacje typu aktywuj-jako-aktywator (AAA), jest używana w wywołaniu CoInitializeSecurity podczas uruchamiania aplikacji systemowej. Ustawienie funkcji uwierzytelniania na EOAC_DISABLE_AAA pozwala aplikacji działającej na koncie uprzywilejowanym (takim jak LocalSystem) pomóc w zapobieganiu wykorzystaniu jej tożsamości do uruchamiania niezaufanych składników.
Tematy pokrewne