대화형 사용자
대화형 사용자는 현재 COM 서버가 실행 중인 컴퓨터에 로그온된 사용자입니다. ID가 대화형 사용자로 설정된 경우 서버가 클래스 팩터리를 다중 사용으로 등록하는 경우 모든 클라이언트는 서버의 동일한 instance 사용합니다. 로그온한 사용자가 없으면 서버가 실행되지 않습니다. 서버에 클라이언트가 확인해야 하는 GUI(그래픽 사용자 인터페이스)가 있는 경우 서버 ID에 대화형 사용자를 사용해야 합니다. 그러나 이 ID를 선택하면 로그온한 사용자의 지식이나 동의 없이 로그온한 사용자의 ID로 서버가 실행되므로 보안 위험이 있습니다. 또한 서비스 애플리케이션은 사용자 인터페이스를 표시할 수 없습니다. 자세한 내용은 Interactive Services를 참조하세요.
COM 서버가 대화형 사용자로 실행되도록 구성된 경우 터미널 서비스 환경에서 클라이언트의 사용자 ID와 일치하는 대화형 세션에서 서버가 시작됩니다. 그러나 클라이언트 애플리케이션은 세션 모니커를 사용하여 클라이언트 ID와 일치하지 않는 세션에서 서버에서 제공하는 개체를 참조할 수 있습니다. 이 옵션을 사용하면 클라이언트 애플리케이션은 모든 세션을 지정할 수 있습니다. 이 경우 서버는 시작 사용자가 아닌 세션을 소유한 사용자로 실행됩니다. 이 시나리오의 기본 액세스 권한은 시작 사용자가 서버에서 메서드를 호출하는 것을 허용하지 않습니다. 그러나 다음과 같은 보안 위험이 남아 있습니다.
- COM 서버가 TCP 포트, 명명된 파이프, LPC 포트, 공유 메모리 섹션 등 COM에서 제어하지 않는 인터페이스를 노출하는 경우 시작 사용자가 서버에 영향을 주는 데 사용할 수 있습니다. 대화형 사용자로 실행되도록 구성된 COM 개체는 이 공격 표면을 최대한 줄여야 합니다.
- COM 개체는 자체 액세스 권한을 자유롭게 설정할 수 있습니다. 개체가 AppID 등록에서 또는 CoInitializeSecurity를 호출하여 액세스 권한을 설정하여 사용자 액세스를 시작하는 경우 사용자는 서버를 시작하여 다른 사용자로 실행한 다음 개체에 액세스할 수 있습니다.
관련 항목