ClickOnce 보안 및 배포ClickOnce security and deployment

ClickOnceClickOnce 는 최소한의 사용자 조작으로 설치 하 고 실행할 수 있는 자동 업데이트 Windows 기반 응용 프로그램을 만들 수 있도록 하는 배포 기술입니다.is a deployment technology that enables you to create self-updating Windows-based applications that can be installed and run with minimal user interaction. Visual StudioVisual Studio Visual Basic 및 Visual c #을 사용 하 여 프로젝트를 개발한 경우 ClickOnce 기술을 사용 하 여 배포 된 응용 프로그램 게시 및 업데이트에 대 한 완전 한 지원을 제공 합니다.provides full support for publishing and updating applications deployed with ClickOnce technology if you have developed your projects with Visual Basic and Visual C#. Visual C++ 응용 프로그램 배포에 대 한 자세한 내용은 Visual C++ 응용 프로그램에 대 한 ClickOnce 배포를 참조 하세요.For information about deploying Visual C++ applications, see ClickOnce Deployment for Visual C++ Applications.

ClickOnceClickOnce 배포는 배포에서 세 가지 주요 문제를 극복 합니다.deployment overcomes three major issues in deployment:

  • 애플리케이션 업데이트의 어려움.Difficulties in updating applications. Microsoft Windows Installer 배포를 사용 하면 응용 프로그램이 업데이트 될 때마다 사용자가 업데이트와 msp 파일을 설치 하 여 설치 된 제품에 적용할 수 있습니다. ClickOnceClickOnce 배포를 사용 하면 업데이트를 자동으로 제공할 수 있습니다.With Microsoft Windows Installer deployment, whenever an application is updated, the user can install an update, an msp file, and apply it to the installed product; with ClickOnceClickOnce deployment, you can provide updates automatically. 응용 프로그램에서 변경 된 부분만 다운로드 한 다음 전체 업데이트 된 응용 프로그램이 새 side-by-side 폴더에서 다시 설치 됩니다.Only those parts of the application that have changed are downloaded, and then the full, updated application is reinstalled from a new side-by-side folder.

  • 사용자의 컴퓨터에 영향을 줍니다.Impact to the user's computer. Windows Installer 배포를 사용 하는 경우 응용 프로그램은 종종 공유 구성 요소를 사용 하므로 버전 관리 충돌이 발생할 수 있습니다. ClickOnceClickOnce 배포를 사용 하는 경우 각 응용 프로그램은 자체 포함 되며 다른 응용 프로그램을 방해할 수 없습니다.With Windows Installer deployment, applications often rely on shared components, with the potential for versioning conflicts; with ClickOnceClickOnce deployment, each application is self-contained and cannot interfere with other applications.

  • 보안 권한.Security permissions. Windows Installer 배포에는 관리 권한이 필요 하 고 제한 된 사용자만 설치할 수 있습니다. ClickOnceClickOnce 배포를 통해 관리자가 아닌 사용자가 설치 하 고 응용 프로그램에 필요한 코드 액세스 보안 권한만 부여할 수 있습니다.Windows Installer deployment requires administrative permissions and allows only limited user installation; ClickOnceClickOnce deployment enables non-administrative users to install and grants only those Code Access Security permissions necessary for the application.

    이전에는 이러한 문제로 인해 개발자가 Windows 기반 응용 프로그램 대신 웹 응용 프로그램을 만들어 쉽게 설치할 수 있도록 다양 한 사용자 인터페이스를 사용 하는 경우가 있습니다.In the past, these issues sometimes caused developers to decide to create Web applications instead of Windows-based applications, sacrificing a rich user interface for ease of installation. 를 사용 하 여 배포 된 응용 프로그램을 사용 하 여 ClickOnceClickOnce 두 가지 기술을 모두 활용할 수 있습니다.By using applications deployed using ClickOnceClickOnce, you can have the best of both technologies.

ClickOnce 애플리케이션이란?What is a ClickOnce application?

ClickOnceClickOnce응용 프로그램은 기술을 사용 하 여 게시 된 모든 Windows Presentation Foundation (xbap), Windows Forms (.exe), 콘솔 응용 프로그램 (.exe) 또는 Office 솔루션 (.dll)입니다 ClickOnceClickOnce .A ClickOnceClickOnce application is any Windows Presentation Foundation (.xbap), Windows Forms (.exe), console application (.exe), or Office solution (.dll) published using ClickOnceClickOnce technology. ClickOnceClickOnce응용 프로그램은 웹 페이지, 네트워크 파일 공유 또는 cd-rom 등의 미디어에서 세 가지 방법으로 게시할 수 있습니다.You can publish a ClickOnceClickOnce application in three different ways: from a Web page, from a network file share, or from media such as a CD-ROM. ClickOnceClickOnce응용 프로그램은 최종 사용자의 컴퓨터에 설치 하 고 컴퓨터가 오프 라인 상태인 경우에도 로컬로 실행 하거나, 최종 사용자의 컴퓨터에 아무것도 설치 하지 않고 온라인 전용 모드에서 실행할 수 있습니다.A ClickOnceClickOnce application can be installed on an end user's computer and run locally even when the computer is offline, or it can be run in an online-only mode without permanently installing anything on the end user's computer. 자세한 내용은 ClickOnce 배포 전략 선택을 참조 하세요.For more information, see Choose a ClickOnce deployment strategy.

ClickOnceClickOnce 응용 프로그램을 자동으로 업데이트할 수 있습니다. 사용 가능한 최신 버전을 확인 하 고 업데이트 된 파일을 자동으로 바꿀 수 있습니다.applications can be self-updating; they can check for newer versions as they become available and automatically replace any updated files. 개발자는 업데이트 동작을 지정할 수 있으며, 네트워크 관리자는 강제 업데이트 지정과 같은 업데이트 전략을 제어할 수 있습니다.The developer can specify the update behavior; a network administrator can also control update strategies, for example, marking an update as mandatory. 최종 사용자나 관리자가 업데이트를 이전 버전으로 롤백할 수도 있습니다.Updates can also be rolled back to an earlier version by the end user or by an administrator. 자세한 내용은 ClickOnce 업데이트 전략 선택을 참조 하세요.For more information, see Choose a ClickOnce update strategy.

ClickOnceClickOnce응용 프로그램이 격리 되어 있으므로 응용 프로그램을 설치 하거나 실행 하면 ClickOnceClickOnce 기존 응용 프로그램을 중단할 수 없습니다.Because ClickOnceClickOnce applications are isolated, installing or running a ClickOnceClickOnce application cannot break existing applications. ClickOnceClickOnce 응용 프로그램은 자체 포함 됩니다. 각 ClickOnceClickOnce 응용 프로그램은에 설치 되 고 보안 사용자별, 응용 프로그램 별 캐시에서 실행 됩니다.applications are self-contained; each ClickOnceClickOnce application is installed to and run from a secure per-user, per-application cache. ClickOnceClickOnce 응용 프로그램은 인터넷 또는 인트라넷 보안 영역에서 실행 됩니다.applications run in the Internet or Intranet security zones. 필요한 경우 애플리케이션이 승격된 보안 권한을 요청할 수 있습니다.If necessary, the application can request elevated security permissions. 자세한 내용은 ClickOnce 응용 프로그램 보안을 참조 하세요.For more information, see Secure ClickOnce applications.

ClickOnce 보안 작동 방법How ClickOnce security works

핵심 ClickOnceClickOnce 보안은 인증서, 코드 액세스 보안 정책 및 ClickOnce 신뢰 프롬프트를 기반으로 합니다.The core ClickOnceClickOnce security is based on certificates, code access security policies, and the ClickOnce trust prompt.

인증서Certificates

Authenticode 인증서는 응용 프로그램 게시자의 신뢰성을 확인 하는 데 사용 됩니다.Authenticode certificates are used to verify the authenticity of the application's publisher. ClickOnce는 응용 프로그램 배포에 Authenticode를 사용 하 여 설정 되 고 신뢰할 수 있는 원본에서 들어오는 합법적인 프로그램으로 유해한 프로그램을 portraying 하는 것을 방지 합니다.By using Authenticode for application deployment, ClickOnce helps prevent a harmful program from portraying itself as a legitimate program coming from an established, trustworthy source. 필요에 따라 응용 프로그램 및 배포 매니페스트에 서명 하 여 파일이 훼손 되지 않았음을 증명 하는 인증서를 사용할 수도 있습니다.Optionally, certificates can also be used to sign the application and deployment manifests to prove that the files have not been tampered with. 자세한 내용은 ClickOnce 및 Authenticode를 참조 하세요.For more information, see ClickOnce and Authenticode. 인증서를 사용 하 여 클라이언트 컴퓨터에서 신뢰할 수 있는 게시자 목록을 구성할 수도 있습니다.Certificates can also be used to configure client computers to have a list of trusted publishers. 신뢰할 수 있는 게시자에서 가져온 응용 프로그램은 사용자 개입 없이 설치할 수 있습니다.If an application comes from a trusted publisher, it can be installed without any user interaction. 자세한 내용은 신뢰할 수 있는 응용 프로그램 배포 개요를 참조 하세요.For more information, see Trusted application deployment overview.

코드 액세스 보안Code access security

코드 액세스 보안은 보호 된 리소스에 대 한 코드의 액세스를 제한 하는 데 도움이 됩니다.Code access security helps limit the access that code has to protected resources. 대부분의 경우 인터넷 또는 로컬 인트라넷 영역을 선택 하 여 사용 권한을 제한할 수 있습니다.In most cases, you can choose the Internet or Local Intranet zones to limit the permissions. Projectdesigner보안 페이지를 사용 하 여 응용 프로그램에 적합 한 영역을 요청 합니다.Use the Security page in the ProjectDesigner to request the zone appropriate for the application. 또한 제한 된 권한으로 응용 프로그램을 디버그 하 여 최종 사용자 환경을 에뮬레이트할 수 있습니다.You can also debug applications with restricted permissions to emulate the end-user experience. 자세한 내용은 ClickOnce 애플리케이션의 코드 액세스 보안을 참조하세요.For more information, see Code access security for ClickOnce applications.

ClickOnce 신뢰 프롬프트ClickOnce trust prompt

응용 프로그램이 영역에서 허용 하는 것 보다 많은 권한을 요청 하는 경우 최종 사용자에 게 트러스트를 결정 하 라는 메시지가 표시 될 수 있습니다.If the application requests more permissions than the zone allows, the end user can be prompted to make a trust decision. 최종 사용자는 Windows Forms 응용 프로그램, Windows Presentation Foundation 응용 프로그램, 콘솔 응용 프로그램, XAML 브라우저 응용 프로그램 및 Office 솔루션과 같은 ClickOnce 응용 프로그램을 실행할 수 있는지 여부를 결정할 수 있습니다.The end user can decide if ClickOnce applications such as Windows Forms applications, Windows Presentation Foundation applications, console applications, XAML browser applications, and Office solutions are trusted to run. 자세한 내용은 방법: ClickOnce 신뢰 프롬프트 동작 구성을 참조 하세요.For more information, see How to: Configure the ClickOnce trust prompt behavior.

ClickOnce 배포 작동 방식How ClickOnce deployment works

핵심 ClickOnceClickOnce 배포 아키텍처는 응용 프로그램 매니페스트 및 배포 매니페스트와 같은 두 가지 XML 매니페스트 파일을 기반으로 합니다.The core ClickOnceClickOnce deployment architecture is based on two XML manifest files: an application manifest and a deployment manifest. 파일은 ClickOnce 응용 프로그램이 설치 된 위치, 업데이트 방법 및 업데이트 된 시기를 설명 하는 데 사용 됩니다.The files are used to describe where the ClickOnce applications are installed from, how they are updated, and when they are updated.

ClickOnce 애플리케이션 게시Publish ClickOnce applications

응용 프로그램 매니페스트는 응용 프로그램 자체에 대해 설명 합니다.The application manifest describes the application itself. 여기에는 어셈블리, 응용 프로그램을 구성 하는 종속성 및 파일, 필요한 권한 및 업데이트를 사용할 수 있는 위치가 포함 됩니다.This includes the assemblies, the dependencies and files that make up the application, the required permissions, and the location where updates will be available. 응용 프로그램 개발자는 Visual Studio의 게시 마법사 또는의 매니페스트 생성 및 편집 도구 (Mage.exe)를 사용 하 여 응용 프로그램 매니페스트를 만든 다음 Windows SDK(소프트웨어 개발 키트)Windows Software Development Kit (SDK)The application developer authors the application manifest by using the Publish Wizard in Visual Studio or the Manifest Generation and Editing Tool (Mage.exe) in the Windows SDK(소프트웨어 개발 키트)Windows Software Development Kit (SDK). 자세한 내용은 방법: 게시 마법사를 사용 하 여 ClickOnce 응용 프로그램 게시를 참조 하세요.For more information, see How to: Publish a ClickOnce application using the Publish Wizard.

배포 매니페스트는 애플리케이션이 배포되는 방법을 기술합니다.The deployment manifest describes how the application is deployed. 여기에는 응용 프로그램 매니페스트의 위치 및 클라이언트에서 실행 해야 하는 응용 프로그램의 버전이 포함 됩니다.This includes the location of the application manifest, and the version of the application that clients should run.

ClickOnce 응용 프로그램 배포Deploy ClickOnce applications

작성된 배포 매니페스트는 배포 위치에 복사됩니다.After it is created, the deployment manifest is copied to the deployment location. 이러한 위치는 웹 서버, 네트워크 파일 공유 또는 CD와 같은 미디어일 수 있습니다.This can be a Web server, network file share, or media such as a CD. 응용 프로그램 매니페스트와 모든 응용 프로그램 파일은 배포 매니페스트에 지정 된 배포 위치에도 복사 됩니다.The application manifest and all the application files are also copied to a deployment location that is specified in the deployment manifest. 이 위치는 배포 위치와 동일하거나 다른 위치일 수 있습니다.This can be the same as the deployment location, or it can be a different location. Visual Studio에서 게시 마법사 를 사용 하면 복사 작업이 자동으로 수행 됩니다.When using the Publish Wizard in Visual Studio, the copy operations are performed automatically.

ClickOnce 응용 프로그램 설치Install ClickOnce applications

배포 위치로 복사한 다음에는 최종 사용자가 웹 페이지 또는 폴더에 있는 배포 매니페스트 파일의 아이콘을 클릭하여 애플리케이션을 다운로드하고 설치할 수 있습니다.After it is deployed to the deployment location, end users can download and install the application by clicking an icon representing the deployment manifest file on a Web page or in a folder. 대부분의 경우 최종 사용자에 게 설치를 확인 하는 간단한 대화 상자가 표시 됩니다. 그러면 설치가 진행 되 고 추가 작업 없이 응용 프로그램이 시작 됩니다.In most cases, the end user is presented with a simple dialog box asking the user to confirm installation, after which installation proceeds and the application is started without additional intervention. 응용 프로그램에 높은 권한이 필요 하거나 응용 프로그램이 신뢰할 수 있는 인증서로 서명 되지 않은 경우에도 대화 상자에서 설치를 계속 하기 전에 사용자에 게 권한을 부여 하 라는 메시지를 표시 합니다.In cases where the application requires elevated permissions or if the application is not signed by a trusted certificate, the dialog box also asks the user to grant permission before the installation can continue. ClickOnce 설치는 사용자 단위 이지만 관리자 권한이 필요한 필수 구성 요소가 있는 경우 권한 상승이 필요할 수 있습니다.Though ClickOnce installs are per-user, permission elevation may be required if there are prerequisites that require administrator privileges. 상승 된 권한에 대 한 자세한 내용은 ClickOnce 응용 프로그램 보안을 참조 하세요.For more information about elevated permissions, see Securing ClickOnce applications.

컴퓨터 또는 엔터프라이즈 수준에서 인증서를 신뢰할 수 있으므로 신뢰할 수 있는 인증서로 서명 된 ClickOnce 응용 프로그램을 자동으로 설치할 수 있습니다.Certificates can be trusted at the machine or enterprise level, so that ClickOnce applications signed with a trusted certificate can install silently. 신뢰할 수 있는 인증서에 대 한 자세한 내용은 신뢰할 수 있는 응용 프로그램 배포 개요를 참조 하세요.For more information about trusted certificates, see Trusted application deployment overview.

응용 프로그램을 사용자의 시작 메뉴와 제어판프로그램 추가/제거 그룹에 추가할 수 있습니다.The application can be added to the user's Start menu and to the Add or Remove Programs group in the Control Panel. 다른 배포 기술과 달리 Program Files 폴더 또는 레지스트리에는 아무것도 추가 되지 않으며 설치에는 관리 권한이 필요 하지 않습니다.Unlike other deployment technologies, nothing is added to the Program Files folder or the registry, and no administrative rights are required for installation

참고

응용 프로그램이 시작 메뉴 및 프로그램 추가/제거 그룹에 추가 되는 것을 방지 하 여 웹 응용 프로그램 처럼 동작 하도록 할 수도 있습니다.It is also possible to prevent the application from being added to the Start menu and Add or Remove Programs group, in effect making it behave like a Web application. 자세한 내용은 ClickOnce 배포 전략 선택을 참조 하세요.For more information, see Choose a ClickOnce deployment strategy.

ClickOnce 응용 프로그램 업데이트Update ClickOnce applications

응용 프로그램 개발자는 응용 프로그램의 업데이트 된 버전을 만들 때 새 응용 프로그램 매니페스트를 생성 하 고 배포 위치에 파일을 복사 합니다. 즉, 일반적으로 원래 응용 프로그램 배포 폴더에 대 한 형제 폴더입니다.When the application developers create an updated version of the application, they generate a new application manifest and copy files to a deployment location—usually a sibling folder to the original application deployment folder. 관리자는 애플리케이션의 새 버전 위치를 가리키도록 배포 매니페스트를 업데이트합니다.The administrator updates the deployment manifest to point to the location of the new version of the application.

참고

Visual Studio의 게시 마법사 를 사용 하 여 이러한 단계를 수행할 수 있습니다.The Publish Wizard in Visual Studio can be used to perform these steps.

배포 위치 외에도 배포 매니페스트에는 애플리케이션이 업데이트된 버전을 확인할 수 있는 업데이트 위치(웹 페이지 또는 네트워크 파일 공유)가 포함됩니다.In addition to the deployment location, the deployment manifest also contains an update location (a Web page or network file share) where the application checks for updated versions. ClickOnceClickOnce게시 속성은 응용 프로그램이 업데이트를 확인 하는 시기 및 빈도를 지정 하는 데 사용 됩니다.Publish properties are used to specify when and how often the application should check for updates. 업데이트 동작은 배포 매니페스트에 지정 하거나 api를 통해 응용 프로그램의 사용자 인터페이스에서 사용자 선택 항목으로 표시 될 수 있습니다 ClickOnceClickOnce .Update behavior can be specified in the deployment manifest, or it can be presented as user choices in the application's user interface by means of the ClickOnceClickOnce APIs. 또한 게시 속성을 사용하여 업데이트를 강제로 수행하거나 이전 버전으로 롤백하도록 지정할 수도 있습니다.In addition, Publish properties can be employed to make updates mandatory or to roll back to an earlier version. 자세한 내용은 ClickOnce 업데이트 전략 선택을 참조 하세요.For more information, see Choosing a ClickOnce update strategy.

타사 설치 관리자Third party installers

ClickOnce 설치 관리자를 사용자 지정 하 여 응용 프로그램과 함께 타사 구성 요소를 설치할 수 있습니다.You can customize your ClickOnce installer to install third-party components along with your application. 재배포 가능 패키지 (.exe 또는 .msi 파일)가 있어야 하 고 언어 중립적인 제품 매니페스트와 언어별 패키지 매니페스트가 포함 된 패키지를 설명 해야 합니다.You must have the redistributable package (.exe or .msi file) and describe the package with a language-neutral product manifest and a language-specific package manifest. 자세한 내용은 부트스트래퍼 패키지 만들기를 참조 하세요.For more information, see Creating bootstrapper packages.

ClickOnce 도구ClickOnce tools

다음 표에서는 응용 프로그램 및 배포 매니페스트를 생성, 편집, 서명 및 다시 서명 하는 데 사용할 수 있는 도구를 보여 줍니다.The following table shows the tools that you can use to generate, edit, sign, and re-sign the application and deployment manifests.

도구Tool DescriptionDescription
프로젝트 디자이너, 보안 페이지Security Page, Project Designer 응용 프로그램 및 배포 매니페스트에 서명 합니다.Signs the application and deployment manifests.
프로젝트 디자이너, 게시 페이지Publish Page, Project Designer Visual Basic 및 Visual c # 응용 프로그램에 대 한 응용 프로그램 및 배포 매니페스트를 생성 하 고 편집 합니다.Generates and edits the application and deployment manifests for Visual Basic and Visual C# applications.
Mage.exe (매니페스트 생성 및 편집 도구)Mage.exe (Manifest Generation and Editing Tool) Visual Basic, Visual c # 및 Visual C++ 응용 프로그램에 대 한 응용 프로그램 및 배포 매니페스트를 생성 합니다.Generates the application and deployment manifests for Visual Basic, Visual C#, and Visual C++ applications.

응용 프로그램 및 배포 매니페스트에 서명 하 고 다시 서명 합니다.Signs and re-signs the application and deployment manifests.

일괄 처리 스크립트와 명령 프롬프트에서 실행할 수 있습니다.Can be run from batch scripts and the command prompt.
MageUI.exe (매니페스트 생성 및 편집 도구, 그래픽 클라이언트)MageUI.exe (Manifest Generation and Editing Tool, Graphical Client) 응용 프로그램 및 배포 매니페스트를 생성 하 고 편집 합니다.Generates and edits the application and deployment manifests.

응용 프로그램 및 배포 매니페스트에 서명 하 고 다시 서명 합니다.Signs and re-signs the application and deployment manifests.
GenerateApplicationManifest 작업GenerateApplicationManifest task 응용 프로그램 매니페스트를 생성 합니다.Generates the application manifest.

MSBuild에서 실행할 수 있습니다.Can be run from MSBuild. 자세한 내용은 MSBuild 참조를 참조 하세요.For more information, see MSBuild reference.
GenerateDeploymentManifest 작업GenerateDeploymentManifest task 배포 매니페스트를 생성 합니다.Generates the deployment manifest.

MSBuild에서 실행할 수 있습니다.Can be run from MSBuild. 자세한 내용은 MSBuild 참조를 참조 하세요.For more information, see MSBuild reference.
SignFile 작업SignFile task 응용 프로그램 및 배포 매니페스트에 서명 합니다.Signs the application and deployment manifests.

MSBuild에서 실행할 수 있습니다.Can be run from MSBuild. 자세한 내용은 MSBuild 참조를 참조 하세요.For more information, see MSBuild reference.
Microsoft.Build.Tasks.Deployment.ManifestUtilitiesMicrosoft.Build.Tasks.Deployment.ManifestUtilities 응용 프로그램을 개발 하 여 응용 프로그램 및 배포 매니페스트를 생성 합니다.Develop your own application to generate the application and deployment manifests.

다음 표에서는 이러한 브라우저에서 ClickOnce 응용 프로그램을 지 원하는 데 필요한 .NET Framework 버전을 보여 줍니다.The following table shows the .NET Framework version required to support ClickOnce applications in these browsers.

브라우저Browser .NET Framework 버전.NET Framework version
Internet ExplorerInternet Explorer 2.0, 3.0, 3.5, 3.5 SP1, 42.0, 3.0, 3.5, 3.5 SP1, 4
FirefoxFirefox 2.0 SP1, 3.5 SP1, 42.0 SP1, 3.5 SP1, 4
ChromeChrome 3.53.5
Microsoft EdgeMicrosoft Edge 3.53.5

참고 항목See also