Sdílet prostřednictvím


Interaktivní uživatel

interaktivní uživatel je uživatel, který je aktuálně přihlášený k počítači, na kterém je spuštěn server COM. Pokud je identita nastavená tak, aby byla interaktivním uživatelem, používají všichni klienti stejnou instanci serveru, pokud server zaregistruje objekt pro vytváření tříd jako více použití. Pokud není přihlášený žádný uživatel, server se nespustí. Pokud má server grafické uživatelské rozhraní (GUI), které klient potřebuje vidět, měli byste pro identitu serveru použít interaktivního uživatele. Volba této identity ale nese určitá bezpečnostní rizika, protože server běží pod identitou přihlášeného uživatele bez přihlášeného vědomí nebo souhlasu uživatele. Aplikace služby navíc nemůže zobrazit uživatelské rozhraní. Další informace naleznete v tématu Interaktivní služby.

Pokud je server MODELU COM nakonfigurovaný tak, aby běžel jako interaktivní uživatel, spustí se server v prostředí terminálových služeb v interaktivní relaci, která odpovídá identitě uživatele klienta. Klientská aplikace však může pomocí monikeru relace odkazovat na objekt poskytnutý serverem v relaci, která neodpovídá identitě klienta. Při tomto použití může klientská aplikace zadat libovolnou relaci, v takovém případě se server spustí jako uživatel, který relaci vlastní, nikoli jako spouštěcí uživatel. Výchozí přístupová oprávnění v tomto scénáři nepovolují spouštěcímu uživateli volání metod na serveru. Následující bezpečnostní rizika však zůstávají:

  • Pokud server COM zveřejňuje rozhraní, která nejsou řízena modelem COM, jako jsou porty TCP, pojmenované kanály, porty LPC, oddíly sdílené paměti atd., mohou být použity spouštěcím uživatelem k ovlivnění serveru. Objekty MODELU COM nakonfigurované tak, aby běžely, protože interaktivní uživatel by měl co nejvíce snížit prostor pro útoky.
  • Objekty COM jsou bezplatné k nastavení vlastních přístupových oprávnění. Pokud objekt nastaví přístupová oprávnění, a to buď v registraci AppID, nebo zavoláním CoInitializeSecurity, aby umožnil přístup uživatele pro spuštění, uživatel by mohl spustit server tak, aby běžel jako jiný uživatel, a pak přistupovat k objektu.

identity aplikace

Spuštění uživatelského

identita služby

zadaný uživatelský