Udostępnij za pośrednictwem


Interakcyjny użytkownik

Użytkownik interaktywny jest użytkownikiem, który jest obecnie zalogowany na komputerze, na którym działa serwer COM. Jeśli tożsamość jest ustawiona na użytkownika interakcyjnego, wszyscy klienci używają tego samego wystąpienia serwera, jeśli serwer rejestruje fabrykę klas jako wiele zastosowań. Jeśli żaden użytkownik nie jest zalogowany, serwer nie zostanie uruchomiony. Jeśli serwer ma graficzny interfejs użytkownika (GUI), który klient musi zobaczyć, należy użyć użytkownika interaktywnego dla tożsamości serwera. Jednak wybranie tej tożsamości wiąże się z pewnymi zagrożeniami bezpieczeństwa, ponieważ serwer działa w ramach tożsamości zalogowanego użytkownika bez wiedzy lub zgody zalogowanego użytkownika. Ponadto aplikacja usługi nie może wyświetlić interfejsu użytkownika. Aby uzyskać więcej informacji, zobacz Interactive Services.

Jeśli serwer COM jest skonfigurowany do uruchamiania jako użytkownik interaktywny, w środowisku usług terminalowych serwer zostanie uruchomiony w sesji interaktywnej zgodnej z tożsamością użytkownika klienta. Jednak aplikacja kliencka może użyć moniker sesji, aby odwołać się do obiektu dostarczonego przez serwer w sesji, która nie jest zgodna z tożsamością klienta. Gdy jest to używane, aplikacja kliencka może określić dowolną sesję, w takim przypadku serwer będzie uruchamiany jako użytkownik będący właścicielem sesji, a nie użytkownik uruchamiający. Domyślne uprawnienia dostępu w tym scenariuszu nie zezwalają użytkownikowi uruchamiającemu na wywoływanie metod na serwerze. Jednak następujące zagrożenia bezpieczeństwa pozostają następujące:

  • Jeśli serwer COM uwidacznia interfejsy, które nie są kontrolowane przez com, takie jak porty TCP, nazwane potoki, porty LPC, sekcje pamięci udostępnionej itd., mogą one być używane przez użytkownika uruchamiającego, aby wpłynąć na serwer. Obiekty COM skonfigurowane do uruchamiania jako użytkownik interakcyjny powinny jak najwięcej zmniejszyć tę powierzchnię ataku.
  • Obiekty COM są bezpłatne do ustawiania własnych uprawnień dostępu. Jeśli obiekt ustawia uprawnienia dostępu, albo w rejestracji AppID lub wywołując CoInitializeSecurity, aby zezwolić na uruchamianie dostępu użytkownika, użytkownik będzie mógł uruchomić serwer, aby uruchomić go jako inny użytkownik, a następnie uzyskać dostęp do obiektu.

application identity

uruchamianie użytkownika

tożsamości usługi

określony użytkownik