Share via


ClickOnce 신뢰할 수 있는 게시자 구성

 

브라이언 노이즈
Microsoft MVP

2005년 4월

적용 대상:
   Visual Studio 2005

요약: ClickOnce 보안을 사용하면 코드 액세스 보안에서 제공하는 런타임 보안 보호를 활용하는 동시에 ClickOnce를 통해 애플리케이션이 배포되는 지점에서 특정 애플리케이션에 대한 사용 권한을 동적으로 결정할 수 있습니다. (인쇄된 페이지 11개)

콘텐츠

신뢰할 수 있는 게시자 및 ClickOnce 애플리케이션 서명 101
시작 시 ClickOnce 보안 검사
영역으로 가져오기
ClickOnce 신뢰할 수 있는 게시자 작업
프로세스 자동화
결론
저자 정보

ClickOnce 보안을 사용하면 사용자 프롬프트 또는 신뢰할 수 있는 게시자를 기반으로 ClickOnce 배포 애플리케이션에 대한 권한 자동 상승을 허용합니다. ClickOnce를 사용하여 애플리케이션을 배포하는 경우 애플리케이션이 수행하는 작업 또는 액세스하려는 리소스에 현재 정책에 따라 부여되는 것보다 더 큰 CAS(코드 액세스 보안) 권한이 필요할 수 있습니다. 이 경우 기본적으로 클라이언트 컴퓨터의 .NET Framework 런타임은 사용자에게 메시지를 표시하고 애플리케이션을 설치하고 관리자 권한 신뢰를 부여할지 여부를 묻습니다.

관리자가 데스크톱을 소유하고 각 데스크톱에 대한 구성 제어가 가능한 엔터프라이즈 환경에서는 일반적으로 사용자에게 신뢰 결정을 묻는 메시지를 표시하지 않는 것이 좋습니다. 대부분의 사용자는 신뢰 결정의 의미를 이해하기 위한 정교함이 없으며 애플리케이션 권한을 부여해야 하거나 부여해서는 안 되는 시기를 알지 못합니다. ClickOnce를 사용하면 신뢰할 수 있는 게시자가 애플리케이션 매니페스트를 서명한 경우 ClickOnce 애플리케이션이 사용자 프롬프트 없이 자체 권한을 자동으로 승격할 수 있도록 하여 이 문제를 제어할 수 있습니다.

신뢰할 수 있는 게시자 및 ClickOnce 애플리케이션 서명 101

그렇다면 신뢰할 수 있는 게시자를 구성하는 것은 무엇일까요? 먼저 항상 게시자 인증서를 사용하여 ClickOnce 배포 및 애플리케이션 매니페스트에 서명해야 합니다. 다음으로 ClickOnce 애플리케이션에 서명하는 데 사용되는 인증서를 사용자 컴퓨터의 신뢰할 수 있는 게시자 인증서 저장소에 구성해야 합니다. 마지막으로 인증서를 발급한 인증 기관은 사용자 컴퓨터의 신뢰할 수 있는 루트 인증 기관 인증서 저장소에 구성되어야 합니다. 나는 차례로이 세 조각의 각 층을 다시 껍질을 벗기겠습니다.

Visual Studio 2005에서 Windows Forms 애플리케이션을 처음 만들고 ClickOnce를 사용하여 게시하면 Visual Studio에서 자동으로 게시자 인증서를 생성하고 게시될 때 애플리케이션에 서명하는 데 사용합니다. 이렇게 하면 개인 인증서 파일(.pfx 파일)을 생성하고 ProjectName>_TemporaryKey.pfx의 <기본 파일 명명 규칙을 사용하여 Visual Studio 프로젝트에 추가합니다. 또한 Visual Studio는 이 인증서를 개인 인증서 저장소에 추가하고 이 인증서를 ClickOnce 애플리케이션 매니페스트에 서명하는 데 사용할 인증서로 설정하는 프로젝트 설정을 사용하도록 설정합니다. 이 모든 것이 자동으로 발생하기 때문에 이 모든 것이 발생하고 있다는 것을 알지 못할 수도 있습니다.

참고 베타 1을 사용하면 강력한 이름 키 파일(규칙에 따라 .snk 파일)을 사용하여 매니페스트의 이름을 강력하게 지정할 수 있습니다. 베타 2 및 RTM은 더 이상 이를 지원하지 않으며, 일반적으로 암호로 보호되거나 보호되지 않을 수 있는 .pfx 파일인 게시자 인증서를 사용하여 매니페스트에 서명해야 합니다.

서명 프로세스는 인증서의 퍼블릭 및 프라이빗 키를 사용하여 ClickOnce 애플리케이션에 대해 생성된 배포 및 애플리케이션 XML 매니페스트 파일에 XML 디지털 서명을 적용합니다. 이 디지털 서명 접근 방식을 사용하면 매니페스트 파일에 포함되는 공개 키를 기반으로 지정된 ClickOnce 애플리케이션 배포에 서명한 사용자와 파일이 변조되지 않았거나 파일이 서명된 이후 어떤 방식으로든 변경된 것을 알 수 있습니다. 이렇게 하면 신뢰할 수 있는 기관에서 게시한 후 악의적인 당사자가 ClickOnce 애플리케이션에 의도하지 않은 설정 또는 파일을 추가할 수 없습니다.

게시자 인증서는 자체 생성 또는 타사 검증이라는 두 가지 버전으로 제공됩니다(예: Verisign에 의해). 인증서는 인증 기관에서 발급하며, 인증서 자체에는 인증서 발급 기관으로 식별하는 인증서가 있습니다. 자체 생성된 인증서는 개발 목적으로 만든 인증서이며, 기본적으로 인증서가 나타내는 인증 기관 및 게시자가 됩니다. 프로덕션 목적으로 사용하려면 Verisign과 같은 외부 회사 또는 엔터프라이즈 환경의 도메인 관리자와 같은 내부 기관 중 타사에서 생성한 인증서를 사용해야 합니다.

신뢰할 수 있는 게시자로 간주하려면 게시자 인증서를 사용자 컴퓨터의 신뢰할 수 있는 게시자 인증서 저장소에 설치해야 하며 게시자 인증서의 발급 기관에는 신뢰할 수 있는 루트 인증 기관 인증서 저장소에 자체 인증서가 설치되어 있어야 합니다. Windows의 certmgr.exe 인증서 관리 콘솔 사용하여 컴퓨터의 저장소에 인증서를 관리하고 설치할 수 있으며 Visual Studio 2005를 사용하여 인증서를 설치할 수도 있습니다. 이 문서의 뒷부분에서 Visual Studio를 사용하는 프로세스를 단계별로 살펴보겠습니다.

시작 시 ClickOnce 보안 검사

ClickOnce 애플리케이션이 사용자의 데스크톱에서 처음 시작될 때 .NET Framework 런타임은 서명에 사용된 게시자 인증서로 서명된 이후 애플리케이션 매니페스트가 변조되지 않도록 먼저 검사. 해당 검사 전달하면 런타임은 신뢰할 수 있는 루트 인증 기관 저장소를 살펴보고 게시자 인증서 발급자에 대한 인증서가 해당 저장소에 설치되어 있는지 확인합니다. 그런 다음 인증서의 게시자가 누구인지 확인하고 해당 인증서가 신뢰할 수 있는 게시자 저장소에 있는지 확인합니다. 이 두 가지가 true이면 기본적으로 사용자에게 메시지가 표시되지 않으며 애플리케이션 매니페스트 파일에 지정된 모든 권한이 애플리케이션에 부여됩니다. 이 애플리케이션에 대한 애플리케이션 신뢰가 사용자의 .NET Framework 보안 정책에 추가되고, 앱이 시작 및 실행되며, 애플리케이션 매니페스트에서 권한이 올바르게 지정된 경우 사용자에게 프롬프트 또는 보안 예외가 표시되지 않아야 합니다.

인증서 발급자와 인증서가 나타내는 게시자가 모두 클라이언트 컴퓨터에서 알 수 없는 경우(저장소에 설치된 인증서에 따라) 그림 1에 표시된 대화 상자가 표시되고 애플리케이션이 필요한 권한을 얻을 수 있도록 허용할지 여부를 결정할 수 있습니다. 애플리케이션이 시작되는 영역에 따라 달라집니다. 아래쪽에 있는 추가 정보... 링크를 클릭하면 그림 2에 표시된 대화 상자가 표시됩니다. 이 대화 상자는 사용자가 설치 단추를 클릭하면 발생할 일에 대해 좀 더 자세히 설명하지만, 일반적으로 대부분의 보안 대화 상자와 마찬가지로 실제로 발생하는 일에 대한 정보가 거의 없기 때문에 이러한 대화 상자를 놀라게 할 수 있습니다.

그림 1. 신뢰할 수 없는 게시자 및 인증 기관 사용자 프롬프트

그림 2. 추가 정보 대화 상자

애플리케이션 매니페스트에 서명하는 데 사용되는 인증서가 신뢰할 수 있는 루트 인증 기관에서 생성되지만 특정 게시자 인증서가 신뢰할 수 있는 게시자 저장소에 없는 경우 사용자에게는 여전히 메시지가 표시되지만 게시자 인증서 발급자를 알 수 없는 경우보다 약간 더 친숙한 프롬프트가 표시됩니다(그림 3 참조). Authenticode 인증서 기술 및 신뢰할 수 있는 루트를 사용하면 적어도 게시 organization 인증서 발급자에 따라 게시자가 누구인지 신뢰할 수 있기 때문에 게시자가 organization 더 친숙한 프롬프트가 표시됩니다. 발급 기관을 신뢰하는 경우 게시자가 자신이 아닌 사람으로 가장하지 않는다고 신뢰할 수 있습니다.

그림 3. 신뢰할 수 있는 인증 기관 사용자 프롬프트

신뢰할 수 있는 게시자 인증서를 기반으로 하는 자동 구성으로 인해 지정된 애플리케이션에 대해 애플리케이션 트러스트를 만든 후 또는 사용자에게 메시지가 표시되고 애플리케이션을 설치할 수 있도록 허용하기 때문에 요청된 보안 권한이 변경되지 않는 한 동일한 애플리케이션의 후속 버전에서 다시 프롬프트를 표시할 필요가 없습니다.

영역으로 가져오기

원본 기반 신뢰 결정을 위해 CAS에서 사용되는 5개의 기본 제공 보안 영역이 있습니다. MyComputer, LocalIntranet, Internet, TrustedSites 및 UntrustedSites. 이러한 동일한 영역은 ClickOnce 애플리케이션 권한 상승과 관련하여 사용자에게 허용되어야 하는 프롬프트 종류를 결정하는 데 사용됩니다. 각 영역은 ClickOnce 애플리케이션의 배포 매니페스트(.application 파일)에 사용된 전체 경로 주소에 따라 결정되는 ClickOnce 애플리케이션이 시작된 컨텍스트에 해당합니다.

표 1에서는 배포 매니페스트에 사용되는 주소를 기반으로 하는 시작 영역의 몇 가지 예를 보여 줍니다. 기본적으로 세분화되는 것은 주소가 네트워크로 연결되지 않은 드라이브에 대한 로컬 파일 경로인 경우 MyComputer 영역에서 애플리케이션이 시작됩니다. 주소가 네트워크 프로토콜(http 또는 UNC 파일 공유)을 사용하고 주소의 서버 부분이 단일 컴퓨터 이름인 경우 LocalIntranet 영역에서 오는 것으로 평가됩니다. 주소의 서버 이름 부분에 점이 포함된 경우 인터넷 영역에서 오는 것으로 평가됩니다. TrustedSites 및 UntrustedSites는 인터넷 Explorer 신뢰할 수 있는 사이트 및 제한된 사이트 보안 설정의 일부로 구성된 개별 주소에 따라 달라집니다.

표 1. ClickOnce 시작 영역 예제

시작 주소 시작 영역
http://deploymentserver/MyClickOnceApp/MyClickOnceApp.application LocalIntranet
\\deploymentserver\MyClickOnceApp\MyClickOnceApp.application LocalIntranet
http://some.dotted.servername/Apps/MyClickOnceApp.application 인터넷
\\127.0.0.1\sharefolder\MyClickOnceApp.application 인터넷
C:\inetpub\wwwroot\MyClickOnceApp\MyClickOnceApp.application MyComputer

기본적으로 MyComputer, LocalIntranet 및 TrustedSites는 사용자가 해당 애플리케이션이 신뢰할 수 있는 게시자에 의해 서명되지 않은 경우 ClickOnce 애플리케이션의 보안 권한을 상승하라는 메시지를 표시하도록 구성됩니다. 인터넷 영역 기본값은 애플리케이션 매니페스트가 신뢰할 수 있는 루트 기관에서 발급한 게시자 인증서로 서명된 경우 필요한 경우 해당 애플리케이션에서 사용자에게 관리자 권한(즉, 게시자 인증서도 신뢰할 수 있는 게시자 저장소에 설치되지 않음)을 묻는 메시지를 표시할 수 있다는 것입니다. Interne에서 시작한 애플리케이션이 신뢰할 수 있는 루트 기관에서 발급한 인증서로 서명되지 않은 경우 애플리케이션을 실행할 수 없습니다. UntrustedSites 영역 기본값은 애플리케이션이 신뢰할 수 있는 루트 기관에서 발급한 신뢰할 수 있는 게시자 인증서로 서명되지 않은 경우 애플리케이션을 실행할 수 없다는 것입니다(즉, 사용자 프롬프트가 허용되지 않음).

이러한 설정은 사용자 프롬프트 정책을 확인하기 위해 ClickOnce에서 확인할 모호한 레지스트리 키를 구성하여 엔터프라이즈에 필요한 경우 수정할 수 있습니다. 위에서 설명한 각 동작은 이 레지스트리 키를 통해 각 영역에 대해 설정할 수 있는 값에 해당합니다.

레지스트리 키 \HKLM\Software\Microsoft\. NETFramework\Security\TrustManager\PromptingLevel은 프롬프트 동작을 사용자 지정할 수 있는 기능입니다. 이 키는 .NET Framework 2.0 설치 후에 기본적으로 표시되지 않으므로 이러한 설정을 사용자 지정하려면 수동으로 만들어야 합니다.

해당 레지스트리 키 아래에 MyComputer, LocalIntranet, Internet, TrustedSites 및 UntrustedSites라는 5개의 문자열 값을 추가할 수 있습니다. 이러한 영역은 해당 영역에 해당합니다. 이러한 값으로 사용, 사용 안 함 또는 AuthenticodeRequired의 세 문자열 중 하나를 설정할 수 있습니다. 사용은 MyComputer, LocalIntranet 및 TrustedSites 영역의 기본값입니다. 인터넷 기본값은 AuthenticodeRequired이고, UntrustedSites 기본값은 Disabled입니다. 표 2에는 각 영역에 대해 설정할 수 있는 값과 해당 효과가 나와 있습니다. 그림 4는 기본 동작으로 설정된 레지스트리 키 값을 보여 주지만 이 키는 기본적으로 존재하지 않으므로 일반적으로 기본값과 다른 값으로 설정하려는 경우에만 만듭니다.

표 2. PromptingLevel 레지스트리 키 값 시작 효과

신뢰할 수 없는 루트 기관 신뢰할 수 있는 루트 기관에서 발급한 인증서 신뢰할 수 있는 루트 기관 및 신뢰할 수 있는 게시자 인증서
사용 비우호적인 사용자 프롬프트 친숙한 사용자 프롬프트 프롬프트 없음; 권한 부여 및 앱 시작
AuthenticodeRequired 애플리케이션 사용 안 함 친숙한 사용자 프롬프트 프롬프트 없음; 권한 부여 및 앱 시작
사용 안 함 애플리케이션 사용 안 함 애플리케이션 사용 안 함 프롬프트 없음; 권한 부여 및 앱 시작

그림 4. 사용자 프롬프트 레지스트리 키 값

실행 중인 ClickOnce 신뢰할 수 있는 게시자

이를 테스트하려면 개발 머신에서 인증서를 구성해야 합니다. 첫 번째 단계는 ClickOnce 앱에 서명하고 개발 또는 테스트 머신의 원하는 인증서 저장소에서 해당 인증서를 구성하는 데 사용할 인증서를 갖는 것입니다. 앞에서 설명한 것처럼 Visual Studio는 애플리케이션을 처음 게시하기 전에 ClickOnce 매니페스트 서명에 사용할 인증서를 구성하지 않는 한 각 ClickOnce 프로젝트에 대해 새 인증서를 생성합니다. 새 테스트 인증서를 생성하고, 알려진 위치에 저장한 다음, 이를 사용하여 많은 테스트 인증서로 인증서 저장소를 뒤덮을 필요가 없도록 모든 개발 ClickOnce 프로젝트에 서명하는 것이 좋습니다. 자동으로 생성된 인증서는 암호로 보호되지 않으며 암호로 보호되는 인증서 파일만 사용하는 것이 좋습니다.

암호로 보호된 Visual Studio 2005에서 새 인증서 파일을 생성하려면 프로젝트 속성 창으로 이동합니다(솔루션 탐색기 속성 노드를 두 번 클릭하거나 프로젝트 노드를 마우스 오른쪽 단추로 클릭하고 상황에 맞는 메뉴에서 속성을 선택). 서명 탭을 선택하고 ClickOnce 매니페스트 검사 서명 상자를 검사 테스트 인증서 만들기... 단추를 클릭합니다(그림 5 참조). 암호를 입력하라는 메시지가 표시되고 기본 이름을 가진 새 pfx 파일이 프로젝트에 추가됩니다. 또한 이 인증서는 매니페스트에 서명하는 데 사용되는 인증서로 설정되며 Windows의 개인 인증서 저장소에 설치됩니다. 그런 다음 파일 이름을 바꾸고 재사용 가능한 위치에 복사한 다음 서명에서 파일에서 선택... 단추를 눌러 해당 인증서를 애플리케이션의 인증서로 구성할 수 있습니다.

그림 5. 프로젝트 속성 서명

인증서가 있고 서명 프로젝트 속성에서 ClickOnce 매니페스트에 서명하는 데 사용할 인증서를 확인한 후에는 Visual Studio에서 애플리케이션을 게시할 수 있으며 매니페스트는 해당 인증서로 서명됩니다. "실제" 게시자 인증서(즉, Verisign 인증서 또는 개발 organization 다른 신뢰할 수 있는 루트 기관에서 서명한 인증서)가 있는 경우 위에서 설명한 대로 파일에서 또는 서명 프로젝트 속성의 스토어에서 선택... 단추를 사용하여 인증서의 개인 저장소에 있는 인증서를 가리키는 대신 사용할 수 있습니다.

신뢰할 수 있는 게시자 배포로 사용자 프롬프트를 방지하는 방법을 확인하려면 첫 번째 평가판 및 개발 목적으로 개발 컴퓨터인 ClickOnce를 사용하여 앱을 시작할 컴퓨터에서 게시자 인증서를 구성해야 합니다. 위에서 설명한 대로 직접 인증서를 생성했거나 Visual Studio와 함께 제공되는 makecert.exe 명령줄 유틸리티를 사용하는 경우 해당 인증서를 신뢰할 수 있는 루트 인증 기관 저장소에 추가해야 합니다. 이는 게시자일 뿐만 아니라 인증서 발급자이기 때문입니다. 그런 다음, 애플리케이션을 프롬프트 없이 시작할 수 있는 마지막 단계인 신뢰할 수 있는 게시자 저장소에 동일한 인증서를 설치하려고 합니다.

이 모든 것을 구체적으로 만들기 위해 숫자로 예제를 단계별로 살펴보겠습니다. Visual Studio 2005에서 새 Windows 애플리케이션 프로젝트를 시작하고 이름을 ClickOnceTrustedPub로 지정합니다. 프로젝트를 만든 후 프로젝트 노드 아래의 솔루션 탐색기 트리에서 속성 노드를 두 번 클릭하여 프로젝트 속성으로 이동하고 서명 탭을 선택합니다.

다음으로 ClickOnce 매니페스트에 서명하는 상자를 선택합니다. 테스트 인증서 만들기... 단추를 누르고 인증서에 대한 암호를 입력합니다. 프로젝트에 만들어지고 추가될 파일의 이름은 ClickOnceTrustedPub_TemporaryKey.pfx입니다. 이름을 솔루션 탐색기 devcert.pfx로 바꿉니다. 이후 프로젝트에 파일을 다시 사용하고 인증서를 계속 다시 생성하고 구성할 필요가 없도록 컴퓨터의 일부 공통 개발 폴더에 파일을 복사하는 것도 좋은 시기입니다. 인증서 파일을 만들 때 Visual Studio는 인증서의 개인 저장소에도 설치했습니다.

신뢰할 수 있는 루트 인증 기관 및 신뢰할 수 있는 게시자 저장소에 이 인증서를 추가하려면 서명 프로젝트 속성 탭에서 자세히 단추를 클릭합니다. 그러면 인증서 정보 대화 상자가 나타납니다(그림 6 참조). 일반 탭 아래쪽에서 인증서 설치... 단추를 클릭하면 인증서 가져오기 마법사가 표시됩니다.

그림 6. 인증서 정보 대화 상자

마법사의 두 번째 단계에서 라디오 단추를 선택하여 다음 저장소에 모든 인증서를 배치한 다음 찾아보기 단추를 누릅니다(그림 7 참조). 그러면 인증서 저장소 목록에서 선택할 수 있는 대화 상자가 열립니다(그림 8 참조).

그림 7. 인증서 마법사 저장소 선택

그림 8. 인증서 저장소 선택 대화 상자

이 프로세스를 통해 처음으로 신뢰할 수 있는 루트 인증 기관 저장소를 선택하고 다음을 클릭한 다음 마법사에서 마침 을 클릭합니다. 루트 기관 인증서 설치의 위험에 대한 자세한 보안 경고 대화 상자가 표시됩니다. 계속하여 예를 클릭하거나 ClickOnce의 신뢰할 수 있는 게시자 기능을 사용해 볼 수 없지만 설명하는 위험을 이해해야 합니다. 다른 사람이 인증서를 획득하고, 애플리케이션에 서명하고, 컴퓨터에서 시작한 경우 Windows는 신뢰할 수 있는 기관에서 확인한 회사에서 해당 애플리케이션을 게시한 것으로 간주합니다.

자세한 정보 단추부터 설명한 프로세스를 반복하지만 이번에는 신뢰할 수 있는 게시자 저장소에 동일한 인증서를 설치합니다.

이렇게 하면 ClickOnce를 사용하여 애플리케이션을 게시할 수 있습니다. 이렇게 하려면 Visual Studio의 빌드 메뉴에서 ProjectName>게시<를 선택하고 팝업되는 마법사에서 마침을 클릭합니다. 이렇게 하면 앱을 빌드하고 기본 ClickOnce 게시 설정으로 게시하며 웹 페이지의 설치 단추를 클릭하여 클라이언트로 설치를 테스트할 수 있는 웹 페이지가 표시됩니다. 해당 단추를 클릭하면 애플리케이션은 어떤 형태의 프롬프트도 없이 데스크톱에서 다운로드하여 실행해야 합니다. ClickOnce 애플리케이션에서 요청한 기본 권한은 무제한(완전 신뢰)이며 제공된 기본 설치 단추 링크는 LocalIntranet 영역 URL을 사용합니다. 따라서 신뢰할 수 있는 게시자 인증서를 구성하지 않고 이 동일한 프로세스를 반복한 경우 그림 1에 표시된 대화 상자가 표시됩니다.

프로세스 자동화

유지 관리할 사용자 컴퓨터가 많은 운영 환경에서는 게시자 인증서를 구성하기 위해 각 컴퓨터에서 Visual Studio를 사용할 수 없으므로 Windows에 포함된 인증서 관리 콘솔(certmgr.exe)을 사용해야 합니다. 명령줄에서 인수 없이 certmgr.exe 실행하는 경우 로컬 컴퓨터의 모든 저장소에서 인증서를 추가하거나 제거할 수 있는 MMC(Microsoft Management Console) 창이 나타납니다. 그러나 이 경우에도 인증서를 구성하기 위해 모든 컴퓨터를 터치하지 않아도 될 수 있습니다. 일부 명령줄 매개 변수와 함께 certmgr.exe 사용하여 프로세스를 자동화할 수도 있습니다.

먼저 내보내기 단추를 사용하여 인증서의 공용 부분을 certmgr의 인증서 파일(.cer)으로 내보내 야 합니다.

그림 9. 인증서 내보내기 Certmgr.exe

이렇게 하면 해당 인증서 파일을 대상 컴퓨터에 복사하고 명령줄에서 certmgr.exe 실행할 수 있습니다. 적절한 스위치를 사용하여 명령줄 매개 변수로 배치할 저장소와 함께 파일 이름을 전달해야 하며, 그러면 컴퓨터에 인증서가 설치됩니다.

certmgr –add alice.cer –s Root
certmgr –add alice.cer –s TrustedPublisher

이 모든 작업은 Visual Studio 설치 및 배포 프로젝트(또는 다른 형태의 설치 관리자)를 통해 사용자 지정 설치 관리자에 스크립팅하거나 추가할 수 있으며, 결과 Windows Installer 패키지(.msi 파일)를 ClickOnce 애플리케이션의 부트스트래퍼에 추가할 수 있습니다. 부트스트래퍼에 대한 자세한 내용은 Sean Draine의 문서 MsDN Magazine의 2004년 10월호에서 Visual Studio 2005 부트스트래퍼를 사용하여 설치를 Kick-Start 참조하세요 .

결론

ClickOnce 보안을 사용하면 코드 액세스 보안에서 제공하는 런타임 보안 보호를 활용하는 동시에 ClickOnce를 통해 애플리케이션이 배포되는 지점에서 특정 애플리케이션에 대한 사용 권한을 동적으로 결정할 수 있습니다. 그러나 이러한 유연성은 가격이 책정됩니다. 사용자가 프롬프트를 통해 애플리케이션 사용 권한을 상승시키는 역할을 할 수 있도록 허용할지 여부와 게시자 인증서의 출처를 기반으로 하여 메시지를 표시할지 여부를 결정해야 합니다. ClickOnce의 기본 동작은 이해하기 가장 쉽습니다. 애플리케이션이 신뢰할 수 있는 게시자에서 배포되기 때문에 자동으로 권한을 상승시키거나 사용자에게 게시자를 신뢰할지 여부를 결정하도록 하라는 메시지를 표시합니다. 보다 제어된 환경에서는 사용자 프롬프트를 제한할 수 있으며, 이 문서에서는 PromptingLevel 레지스트리 키를 사용하고 사용자 컴퓨터에서 게시자 및 신뢰할 수 있는 루트 기관 인증서를 구성하는 방법을 설명했습니다. ClickOnce의 보안 보호를 적절하게 사용하려면 다양한 값의 효과와 다양한 인증서 저장소 구성으로 동작하는 방식을 이해하는 것이 중요합니다.

 

작성자 정보

Brian Noyes는 Microsoft MVP이며 IDesign, Inc.(www.idesign.net)의 유명한 연사, 트레이너, 작가 및 컨설턴트입니다. 그는 TechEd US 및 말레이시아, Visual Studio Connections, VSLive!, DevEssentials 및 기타 컨퍼런스에서 연설하며 INETA 화자 국에서 가장 높은 평가를 받은 연사 중 한 입니다. MSDN Magazine, Visual Studio Magazine, asp.netPRO, The Server Side .NET, CoDe Magazine, .NET Developer's Journal 및 기타 출판물에 대한 .NET Framework 개발에 관한 수많은 문서를 게시했습니다. 그의 최신 책, Windows Forms 데이터 바인딩 2.0, Addison-Wesley .NET 개발 시리즈의 일부, 가을에 선반을 칠 것 이다 2005. 브라이언은 해군에서 F-14 Tomcats를 비행하는 동안 뇌를 자극하는 프로그래밍을 시작했으며, 탑 건과 미국 해군 테스트 파일럿 학교에 다니는 부신을 자극하면서 항공기 및 항공 전자 시뮬레이션, 프로토 타입 및 지원 응용 프로그램을 프로그래밍하는 데 자신의 기술과 관심을 적용했습니다.