다음을 통해 공유


사용자 계정 컨트롤

메모

이 디자인 가이드는 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스크린샷

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

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

디자인 개념

목표

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

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

권한 상승 작업 흐름

작업에 권한 상승이 필요한 경우 다음 단계를 수행합니다.

  1. 진입점입니다. UAC를 완전히 사용하도록 설정할 때 즉시 상승이 필요한 작업에는 UAC 방패로 표시된 진입점이 있습니다. 이 경우 사용자는 이러한 명령을 클릭한 직후에 권한 상승 UI가 표시될 것으로 예상해야 하며, 보호막이 없는 작업에서 권한 상승 UI가 표시되면 매우 주의해야 합니다.

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

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

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

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

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

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

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

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

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

사용 패턴

사용자 계정 컨트롤에는 몇 가지 사용 패턴(기본 설정 순서)이 있습니다.

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

    틀렸습니다.

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

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

    수정:

    날짜 및 시간 대화 상자

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

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

    상승 필요그래픽

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

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

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

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

  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 shield 아이콘이스크린샷

    즉시 상승이 필요한 명령 단추입니다.

    명령 링크:

    uac shield 아이콘스크린샷

    즉시 상승이 필요한 명령 링크입니다.

    링크:

    uac shield스크린샷

    즉시 상승이 필요한 링크입니다.

    메뉴:

    uac shield스크린샷

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

  • 작업은 상승된 상태를 기억하지 못하므로 상태를 반영하도록 UAC 방패를 변경하지 않습니다.

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

해발

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

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

    틀렸습니다.

    날짜 및 시간 설정 대화 상자

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

    수정:

    uac 보호

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

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

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

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

    틀렸습니다.

    스크린샷: fabrikam 복원을 실행할 수

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

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

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

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

권한 상승 UI

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

스크린샷에는 권한 메시지 필요합니다.

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

마법사

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

문자 메시지

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

문서조사

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

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

사용자 설명서:

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

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

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