사용자 계정 컨트롤

참고

이 디자인 가이드는 Windows 7용으로 만들어졌으며 최신 버전의 Windows용으로 업데이트되지 않았습니다. 지침의 대부분은 여전히 원칙으로 적용되지만 프레젠테이션 및 예제에는 현재 디자인 지침이 반영되지 않습니다.

잘 디자인된 사용자 계정 컨트롤 환경은 예측 가능하고 최소한의 노력이 필요한 방식으로 원치 않는 시스템 차원의 변경을 방지하는 데 도움이 됩니다.

UAC(사용자 계정 컨트롤)를 완전히 사용하도록 설정하면 대화형 관리자는 일반적으로 최소 사용자 권한으로 실행되지만 동의 UI에 명시적 동의를 제공하여 관리 작업을 수행하도록 자체 승격할 수 있습니다. 이러한 관리 작업에는 소프트웨어 및 드라이버 설치, 시스템 전체 설정 변경, 다른 사용자 계정 보기 또는 변경, 관리 도구 실행이 포함됩니다.

최소 권한 상태에서 관리자는 보호된 관리자라고 합니다. 관리자 권한 상태에서 관리자 권한 관리자라고 합니다. 반면, 표준 사용자는 스스로 승격할 수는 없지만 관리자에게 자격 증명 UI를 사용하여 관리자를 승격하도록 요청할 수 있습니다. 기본 제공 관리자 계정에는 권한 상승이 필요하지 않습니다.

'프로그램 허용' 보안 메시지의 스크린샷

보호된 관리자에게 관리자 권한을 부여하도록 승격하는 데 사용되는 동의 UI입니다.

암호를 요청하는 메시지의 스크린샷

표준 사용자를 승격하는 데 사용되는 자격 증명 UI입니다.

UAC는 다음과 같은 이점을 제공합니다.

  • 상승된 권한으로 실행되는 프로그램 수를 줄여 사용자가 실수로 시스템 설정을 변경하지 못하게 하고 "맬웨어"가 시스템 전체 액세스 권한을 얻는 것을 방지할 수 있습니다. 권한 상승이 거부되면 맬웨어는 현재 사용자의 데이터에만 영향을 줄 수 있습니다. 권한 상승이 없으면 맬웨어가 시스템 차원을 변경하거나 다른 사용자에게 영향을 줄 수 없습니다.
  • 관리되는 환경의 경우 잘 설계된 UAC 환경을 사용하면 불필요한 제한을 제거하여 표준 사용자로 실행할 때 사용자가 생산성을 높일 수 있습니다.
  • 이를 통해 표준 사용자는 관리자에게 현재 세션 내에서 관리 작업을 수행할 수 있는 권한을 부여하도록 요청할 수 있습니다.
  • 가정 환경의 경우 설치된 소프트웨어를 포함하여 시스템 차원의 변화에 대한 자녀 보호 기능을 향상할 수 있습니다.

개발자: 구현 정보는 UAC 호환성을 위해 UI 다시 설계를 참조하세요.

Windows Vista에서 보호된 관리자는 모든 시스템 변경 또는 없음에 대한 알림을 받도록 선택할 수 있습니다. UAC 기본 설정은 원본에 관계없이 모든 변경 내용을 알리는 것입니다. 알림을 받으면 데스크톱이 흐리게 표시되고 UAC 대화 상자에서 요청을 승인하거나 거부해야 컴퓨터에서 다른 작업을 수행할 수 있습니다. 데스크톱의 디밍을 보안 데스크톱 이라고 하는 이유는 흐리게 표시되는 동안 다른 프로그램을 실행할 수 없기 때문입니다.

Windows 7에는 Windows Vista의 두 설정 외에도 보호된 관리자를 위한 두 가지 중간 UAC 설정이 도입되었습니다. 첫 번째는 프로그램이 변경될 때만 사용자에게 알리기 때문에 관리자가 직접 변경할 때 관리자가 자동으로 상승됩니다. 이는 Windows 7의 UAC 기본 설정이며 보안 데스크톱도 사용합니다.

Windows 7의 두 번째 중간 설정은 보안 데스크톱을 사용하지 않는다는 점을 제외하고 첫 번째 설정과 동일합니다.

Windows 7의 4개 uac 설정 스크린샷

Windows 7에는 두 가지 중간 UAC 설정이 도입되었습니다.

참고:사용자 계정 컨트롤을 지원하는 코드 작성과 관련된 지침은 별도의 문서에 제공됩니다.

설계 개념

목표

잘 디자인된 사용자 계정 컨트롤 환경에는 다음과 같은 목표가 있습니다.

  • 불필요한 권한 상승을 제거합니다. 사용자는 관리자 권한이 필요한 작업을 수행하기 위해서만 상승해야 합니다. 다른 모든 작업은 권한 상승의 필요성을 없애도록 설계되어야 합니다. 레거시 소프트웨어는 HKLM 또는 HKCR 레지스트리 섹션 또는 프로그램 파일 또는 Windows 시스템 폴더에 작성하여 관리자 권한이 불필요하게 필요한 경우가 많습니다.
  • 예측할 수 있습니다. 표준 사용자는 관리되는 환경에서 관리자가 수행해야 하거나 전혀 수행할 수 없는 작업을 알아야 합니다. 관리자는 권한 상승이 필요한 작업을 알아야 합니다. 권한 상승의 필요성을 정확하게 예측할 수 없는 경우 그렇지 않을 때 관리 작업에 대한 동의를 제공할 가능성이 높습니다.
  • 최소한의 노력이 필요합니다. 관리 권한이 필요한 작업은 단일 권한 상승이 필요하도록 설계되어야 합니다. 여러 권한 상승이 필요한 작업은 빠르게 지루해집니다.
  • 최소 권한으로 되돌려 줍니다. 관리 권한이 필요한 작업이 완료되면 프로그램이 최소 권한 상태로 되돌리기 합니다.

권한 상승 작업 흐름

작업에 권한 상승이 필요한 경우 다음 단계가 있습니다.

  1. 진입점. UAC가 완전히 활성화될 때 즉각적인 상승이 필요한 작업에는 UAC 방패로 표시된 진입점이 있습니다. 이 경우 사용자는 이러한 명령을 클릭한 직후 권한 상승 UI가 표시될 것으로 예상해야 하며, 방패가 없는 작업에서 권한 상승 UI가 표시되면 주의해야 합니다.

    uac 방패 아이콘 및 해당 레이블의 스크린샷

    이 예제에서는 보호자 통제 및 사용자 계정 제어판 항목에 상승이 필요합니다.

    UAC를 부분적으로 사용하거나 완전히 해제한 경우 UAC 실드가 계속 표시되어 작업에 시스템 수준 변경이 포함되므로 사용자에게 권한 상승 UI가 표시되지 않더라도 권한 상승이 필요함을 나타냅니다. 항상 권한 상승이 필요한 작업에 UAC 방패를 표시하면 UI가 간단하고 예측 가능해집니다.

  2. 해발 고 도. 보호된 관리자의 경우 태스크는 동의 UI를 사용하여 동의를 요청합니다. 표준 사용자의 경우 작업은 자격 증명 UI를 사용하여 관리자 자격 증명을 요청합니다.

    두 가지 유형의 권한 상승 스크린샷

    다음 예제에서는 자격 증명 UI 및 동의 UI를 보여 줍니다.

  3. 관리자 권한 프로세스를 분리합니다. 내부적으로 작업을 수행하기 위해 상승된 새 프로세스가 만들어집니다.

  4. 최소 권한으로 되돌려야 합니다. 필요한 경우 권한 상승이 필요하지 않은 단계를 완료하려면 최소 권한으로 되돌리기.

작업은 상승된 상태를 "기억"하지 않습니다. 예를 들어 사용자가 마법사의 권한 상승 진입점을 앞뒤로 탐색하는 경우 사용자는 매번 상승해야 합니다.

사용 패턴

사용자 계정 컨트롤에는 여러 사용 패턴이 있습니다(기본 설정 순서대로).

  1. 표준 사용자를 위해 작업합니다. scope 현재 사용자로 제한하여 모든 사용자에 대한 기능을 디자인합니다. 시스템 전체와 달리 설정을 현재 사용자로 제한하면 권한 상승 UI가 완전히 필요하지 않으며 사용자가 작업을 완료할 수 있습니다.

    잘못된 예:

    메시지 스크린샷: 권한이 없습니다.

    이 예제에서 Windows XP 사용자는 현재 표준 시간대를 보거나 변경할 수 있는 관리 권한이 있어야 했습니다.

    올바름:

    날짜 및 시간 대화 상자의 스크린샷

    이 예제에서 표준 시간대 기능은 모든 사용자에 대해 작동하도록 Windows 7 및 Windows Vista에서 다시 디자인되었습니다.

  2. 표준 사용자 및 관리자를 위한 별도의 UI 요소가 있습니다. 표준 사용자 작업을 관리 작업과 명확하게 구분합니다. 모든 사용자에게 유용한 읽기 전용 정보에 대한 액세스 권한을 부여합니다. UAC 방패를 사용하여 관리 작업을 명확하게 식별합니다.

    상승이 필요한 uac 실드 그래픽

    이 예제에서 시스템 제어판 항목은 모든 사용자에게 상태를 표시하지만 시스템 전체 설정을 변경하려면 권한 상승이 필요합니다.

  3. 표준 사용자가 작업을 시도하고 실패 시 상승하도록 허용합니다. 표준 사용자가 정보를 볼 수 있고 권한 상승 없이 일부 변경을 수행할 수 있는 경우 UI에 액세스하고 작업이 실패하는 경우에만 상승하도록 허용합니다. 이 방법은 표준 사용자가 Windows Explorer 자신의 파일 속성과 같이 제한된 액세스 권한이 있는 경우에 적합합니다. 제어판 하이브리드 허브 페이지의 설정에도 적합합니다.

    액세스 스크린샷이 거부됨 메시지

    이 예제에서 사용자는 프로그램 파일 속성을 변경하려고 했지만 권한이 충분하지 않았습니다. 사용자는 상승하고 다시 시도할 수 있습니다.

  4. 관리자만 작업합니다. 이 방법은 관리자 기능 및 프로그램에만 사용합니다. 기능이 관리자만을 위한 것(및 표준 사용자에 대한 탐색 경로 또는 유용한 읽기 전용 정보가 없는 경우)은 UI를 표시하기 전에 진입점에서 관리자 자격 증명을 묻는 메시지를 표시할 수 있습니다. 모든 경로에 관리 권한이 필요한 경우 긴 마법사 및 페이지 흐름 에 이 방법을 사용합니다.

    전체 프로그램이 관리자 전용인 경우 시작하려면 관리자 자격 증명을 묻는 메시지를 표시합니다. Windows는 UAC 실드 오버레이와 함께 이러한 프로그램 아이콘을 표시합니다.

    Windows 로고 및 uac shield 오버레이 스크린샷

    이 예제에서는 프로그램을 시작하려면 관리자 권한이 필요합니다.

지침

UAC 방패 아이콘

  • UAC 방패가 있는 컨트롤을 표시하여 UAC가 완전히 활성화되어 있지 않더라도 UAC가 완전히 활성화된 경우 작업이 즉시 상승해야 함을 나타냅니다 . 마법사 및 페이지 흐름 의 모든 경로에 상승이 필요한 경우 작업의 진입점에 UAC 방패를 표시합니다. UAC 방패를 적절하게 사용하면 사용자가 상승이 필요한 시기를 예측할 수 있습니다.

  • 프로그램에서 여러 버전의 Windows를 지원하는 경우 하나 이상의 버전에 권한 상승이 필요한 경우 UAC 방패를 표시합니다. Windows XP에는 상승이 필요하지 않으므로 성능에 해를 끼치지 않고 일관되게 수행할 수 있는 경우 Windows XP용 UAC 방패를 제거하는 것이 좋습니다.

  • 대부분의 컨텍스트에서 권한 상승이 필요하지 않은 작업에는 UAC 방패를 표시하지 마세요. 이 방법은 때때로 오해의 소지가 있기 때문에 적절하게 보호된 컨텍스트 명령을 대신 사용하는 것이 좋습니다.

    Windows 탐색기의 사진 파일 스크린샷

    새 폴더 명령은 시스템 폴더에서 사용되는 경우에만 권한 상승이 필요하므로 UAC 실드 없이 표시됩니다.

  • UAC 방패는 다음 컨트롤에 표시될 수 있습니다.

    명령 단추:

    uac 실드 아이콘이 있는 명령 단추의 스크린샷

    즉각적인 권한 상승이 필요한 명령 단추입니다.

    명령 링크:

    uac 실드 아이콘이 있는 명령 링크의 스크린샷

    즉각적인 권한 상승이 필요한 명령 링크입니다.

    링크:

    uac 실드를 사용한 계정 변경 링크 스크린샷

    즉각적인 권한 상승이 필요한 링크입니다.

    메뉴:

    uac 실드가 있는 메뉴 스크린샷

    즉시 권한 상승이 필요한 드롭다운 메뉴입니다.

  • 작업은 상승된 상태를 기억하지 못하므로 UAC 방패를 상태를 반영하도록 변경하지 마세요.

  • 사용자 계정 컨트롤이 꺼져 있거나 사용자가 기본 제공 관리자 계정을 사용하는 경우에도 UAC 방패를 표시합니다. UAC 방패를 일관되게 표시하면 프로그래밍이 더 쉬우며 사용자에게 작업의 특성에 대한 정보를 제공합니다.

상승

  • 가능하면 권한 상승 없이 표준 사용자가 수행할 작업을 디자인합니다. 모든 사용자에게 유용한 읽기 전용 정보에 대한 액세스 권한을 부여합니다.

  • 설정 기준이 아닌 작업 단위로 상승합니다. 표준 사용자 설정을 단일 페이지 또는 대화 상자의 관리 설정과 혼합하지 마세요. 예를 들어 표준 사용자가 일부 설정을 변경할 수 있지만 일부 설정을 변경할 수 있는 경우 해당 설정을 별도의 UI 화면으로 분할합니다.

    잘못된 예:

    날짜 및 시간 설정 대화 상자의 스크린샷

    이 예제에서는 표준 사용자 설정이 관리 설정과 잘못 혼합되어 있습니다.

    올바름:

    uac 방패가 없는 동일한 대화 상자의 스크린샷

    이 예제에서 날짜 및 시간 변경에 대한 설정은 관리자만 사용할 수 있는 별도의 대화 상자에 있습니다. 표준 시간대 설정은 표준 사용자가 사용할 수 있으며 관리 설정과 혼합되지 않습니다.

  • 컨트롤을 표시하거나 사용하지 않도록 설정할지 결정할 때는 상승해야 할 필요성을 고려하지 마세요. 그 이유는 다음과 같습니다.

    • 관리되지 않는 환경에서는 표준 사용자가 관리자에게 요청하여 승격할 수 있다고 가정합니다. 권한 상승이 필요한 컨트롤을 사용하지 않도록 설정하면 사용자가 관리자 권한 상승을 할 수 없습니다.
    • 관리되는 환경에서는 표준 사용자가 전혀 상승할 수 없다고 가정합니다. 권한 상승이 필요한 컨트롤을 제거하면 사용자가 검색을 중지할 시기를 알 수 없습니다.
  • 불필요한 권한 상승을 제거하려면 다음을 수행합니다.

    • 작업에 상승이 필요할 수 있는 경우 가능한 한 늦게 상승합니다. 작업에 확인이 필요한 경우 사용자가 확인한 후에만 권한 상승 UI를 표시합니다. 작업에 항상 권한 상승이 필요한 경우 진입점에서 상승합니다.
    • 상승된 후에는 상승된 권한이 더 이상 필요하지 않을 때까지 상승된 상태를 유지합니다. 사용자는 단일 작업을 수행하기 위해 여러 번 상승할 필요가 없습니다.
    • 사용자가 변경을 위해 상승해야 하지만 변경하지 않도록 선택한 경우 양수 커밋 단추를 사용하도록 설정하지만 커밋을 취소로 처리합니다. 이렇게 하면 사용자가 창을 닫기 위해 상승하지 않아도 됩니다.
    • 잘못된 예:
    • 단추가 하나만 활성화된 창의 스크린샷
    • 이 예제에서는 불필요한 권한 상승을 방지하기 위해 변경 내용 저장 단추를 사용할 수 없지만 사용자가 선택을 변경할 때 사용하도록 설정됩니다. 그러나 사용하지 않도록 설정된 커밋 단추를 사용하면 사용자가 실제로 선택할 수 없는 것처럼 보입니다.
  • 사용자가 상승하지 않도록 선택했기 때문에 작업이 실패할 때 오류 메시지를 표시하지 마세요. 사용자가 의도적으로 진행하지 않도록 선택했기 때문에 이 상황을 오류로 간주하지 않는다고 가정합니다.

    잘못된 예:

    메시지 스크린샷: fabrikam 복원을 실행할 수 없음

    이 예제에서 Fabrikam Restore는 사용자가 상승하지 않기로 결정할 때 오류 메시지를 잘못 제공합니다.

  • 사용자가 작업을 수행하기 위해 권한을 상승시켜야 할 수 있음을 설명하는 경고를 표시하지 마세요. 사용자가 이 사실을 스스로 발견할 수 있도록 합니다.

  • 다음 표에 따라 UAC 방패 및 권한 상승 UI를 표시합니다.

    개체 상황 UAC 방패를 넣을 위치 상승해야 하는 경우
    프로그램
    전체 프로그램은 관리자 전용입니다.
    Windows 로고 및 uac shield 오버레이 스크린샷
    프로그램 아이콘의 UAC 방패 오버레이입니다.
    시작 시 권한 상승 UI를 표시합니다.
    명령
    전체 명령은 관리자 전용입니다.
    계정 변경 링크 및 uac 실드 스크린샷
    명령 단추 또는 링크의 UAC 실드입니다.
    명령 단추 또는 링크를 클릭할 때 확인 후 권한 상승 UI를 표시합니다.
    명령
    명령은 모든 사용자에게 적합한 유용한 읽기 전용 정보를 표시하지만 변경 내용에는 관리 권한이 필요합니다.
    변경 설정 링크 및 uac 실드 스크린샷
    UAC는 명령 단추 또는 링크를 보호하여 변경합니다.
    명령 단추를 클릭할 때는 확인 후 권한 상승 UI를 표시합니다.
    명령
    표준 사용자는 정보를 보고 권한 상승 없이 일부 변경을 수행할 수 있습니다. 표준 사용자가 시도하고 실패 시 상승하도록 허용합니다.
    다시 시도 단추에 uac 아이콘이 있는 오류 스크린샷
    명령에 대한 UAC 방패를 표시하지 말고 명령이 실패하면 권한 상승 진입점에 대해 표시합니다.
    사용자가 명령을 다시 시도하면 권한 상승 UI를 표시합니다.
    작업 단계
    모든 후속 단계에는 권한 상승이 필요합니다.
    uac 실드가 있는 다음 명령 단추의 스크린샷
    다음 단추(또는 해당)의 UAC 방패입니다.
    다음 또는 다른 커밋 단추를 클릭할 때 권한 상승 UI를 표시합니다.
    작업 단계
    일부 분기에는 상승이 필요합니다.
    uac 방패가 있는 명령 링크 스크린샷
    권한 상승이 필요한 명령 링크의 UAC 방패입니다.
    UAC 방패가 있는 명령 링크를 클릭하면 권한 상승 UI를 표시합니다.

권한 상승 UI

  • 사용자가 유효하지 않거나(이름 또는 암호) 관리자 권한이 없는 계정을 제공하는 경우 자격 증명 UI를 다시 표시하기만 하면 됩니다. 오류 메시지를 표시하지 마세요.
  • 사용자가 자격 증명 UI를 취소하는 경우 사용자를 원래 UI로 다시 반환합니다. 오류 메시지를 표시하지 마세요.
  • 사용자 계정 컨트롤이 꺼져 있고 표준 사용자가 권한 상승이 필요한 작업을 수행하려고 하면 "이 작업에는 관리자 권한이 필요합니다. 이 작업을 수행하려면 관리자 계정을 사용하여 로그온해야 합니다."

작업 스크린샷에 권한 메시지 필요

이 예제에서는 사용자 계정 컨트롤이 꺼져 있으므로 사용자가 관리자 계정을 사용해야 한다는 오류 메시지가 표시됩니다.

마법사

  • 여러 번 상승하지 마세요. 마법사가 상승되면 상승 상태를 유지해야 합니다.
  • 마법사 내에서 작업을 수행하는 경우 커밋 페이지의 "다음" 단추(보다 구체적인 레이블을 지정해야 함)에 UAC 방패를 놓습니다. 사용자가 커밋하는 경우:
    • 다음 페이지가 진행률 페이지인 경우 해당 페이지로 이동하여 권한 상승 UI를 모달로 표시합니다. 승격에 성공하면 작업을 수행합니다.
    • 다음 페이지가 완료 페이지인 경우 해당 페이지로 이동하고(하지만 일시적으로 콘텐츠를 "권한 대기 중..."으로 바꿉니다.) 권한 상승 UI를 모달로 표시합니다. 승격에 성공하면 작업을 수행한 다음 완료 페이지 콘텐츠를 표시합니다.
    • 사용자가 권한 상승 UI를 취소하면 커밋 페이지로 돌아갑니다. 이렇게 하면 사용자가 다시 시도할 수 있습니다.
  • 마법사가 완료된 후 작업이 수행되면 커밋 페이지의 "마침" 단추(보다 구체적인 레이블을 지정해야 함)에 UAC 방패를 놓습니다. 사용자가 커밋하는 경우:
    • 커밋 페이지에 남아 있고 권한 상승 UI를 모듈식으로 표시합니다. 승격에 성공하면 마법사를 닫습니다.
    • 사용자가 권한 상승 UI를 취소하면 커밋 페이지로 돌아갑니다. 이렇게 하면 사용자가 다시 시도할 수 있습니다.
  • 관리자만을 위한 긴 마법사의 경우 UI를 표시하기 전에 진입점에서 관리자 자격 증명을 묻는 메시지를 표시할 수 있습니다.

텍스트

  • 명령에 권한 상승이 필요하기 때문에 줄임표를 사용하지 마세요. 상승의 필요성은 UAC 방패로 표시됩니다.

설명서

사용자 계정 컨트롤을 참조하는 경우:

  • 이 기능을 사용자 계정 컨트롤(첫 번째 멘션) 또는 UAC(이후 멘션)로 참조하세요. 최소 권한 사용자 계정 또는 LUA가 아닙니다.
  • 비관리자를 표준 사용자로 참조하세요.
  • 기본 제공 컴퓨터 관리자를 기본 제공 관리자로 참조하세요.

사용자 설명서에서:

  • 관리 작업을 수행하기 위한 동의를 부여하는 행위(권한 부여)를 참조하세요.

프로그래밍 및 기타 기술 설명서:

  • 관리자 권한으로 관리 작업을 수행하는 데 동의한 행위를 참조하세요.
  • UAC의 컨텍스트에서 관리자를 관리자 권한 상승이 아닌 경우 보호된 관리자로, 관리자 권한 상승 후 관리자를 참조하세요.
  • 암호를 자격 증명 UI로 입력하는 데 사용되는 대화 상자를 참조하세요. 동의 UI로 동의를 제공하는 데 사용되는 대화 상자를 참조하세요. 일반적으로 둘 다 권한 상승 UI라고 합니다.