다음을 통해 공유


UI 자동화 보안 개요

비고

이 설명서는 System.Windows.Automation 네임스페이스에 정의된 관리되는 UI 자동화 클래스를 사용하려는 .NET Framework 개발자를 위한 것입니다. UI 자동화에 대한 최신 정보는 Windows Automation API: UI 자동화참조하세요.

이 개요에서는 Windows Vista에서 Microsoft UI 자동화에 대한 보안 모델을 설명합니다.

사용자 계정 제어

보안은 Windows Vista의 주요 초점이며, 혁신 중에는 사용자가 더 높은 권한이 필요한 애플리케이션 및 서비스를 실행하지 않고도 표준(비관리자) 사용자로 실행할 수 있는 기능이 있습니다.

Windows Vista에서는 대부분의 애플리케이션에 표준 또는 관리 토큰이 제공됩니다. 애플리케이션을 관리 애플리케이션으로 식별할 수 없는 경우 기본적으로 표준 애플리케이션으로 시작됩니다. 관리자로 식별된 애플리케이션을 시작하기 전에 Windows Vista는 관리자 권한으로 애플리케이션을 실행하는 데 동의하라는 메시지를 사용자에게 표시합니다. 관리자가 관리자 자격 증명이 필요한 애플리케이션 또는 시스템 구성 요소에서 실행 권한을 요청할 때까지 표준 사용자로 실행되기 때문에 사용자가 로컬 관리자 그룹의 구성원인 경우에도 동의 프롬프트가 기본적으로 표시됩니다.

더 높은 권한이 필요한 작업

사용자가 관리 권한이 필요한 작업을 수행하려고 하면 Windows Vista에서 사용자에게 계속 동의를 요청하는 대화 상자를 표시합니다. 이 대화 상자는 교차 프로세스 통신으로부터 보호되므로 악성 소프트웨어가 사용자 입력을 시뮬레이션할 수 없습니다. 마찬가지로 데스크톱 로그온 화면은 일반적으로 다른 프로세스에서 액세스할 수 없습니다.

UI 자동화 클라이언트는 다른 프로세스와 통신해야 하며, 그 중 일부는 더 높은 권한 수준에서 실행 중일 수 있습니다. 클라이언트는 다른 프로세스에 일반적으로 표시되지 않는 시스템 대화 상자에 액세스해야 할 수도 있습니다. 따라서 UI 자동화 클라이언트는 시스템에서 신뢰할 수 있어야 하며 특별한 권한으로 실행해야 합니다.

더 높은 권한 수준에서 실행되는 애플리케이션과 통신하도록 신뢰할 수 있도록 애플리케이션에 서명해야 합니다.

매니페스트 파일

보호된 시스템 UI에 액세스하려면, 애플리케이션은 uiAccess 태그에 requestedExecutionLevel 특성을 포함한 매니페스트 파일을 사용하여 빌드해야 합니다.

<trustInfo xmlns="urn:schemas-microsoft-com:asm.v3">
  <security>
    <requestedPrivileges>
      <requestedExecutionLevel
        level="highestAvailable"
        uiAccess="true" />
    </requestedPrivileges>
  </security>
</trustInfo>

이 코드의 level 특성 값은 예제일 뿐입니다.

uiAccess 는 기본적으로 "false"입니다. 즉, 특성을 생략하거나 어셈블리에 대한 매니페스트가 없는 경우 애플리케이션은 보호된 UI에 액세스할 수 없습니다.