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 StudioVisual Basic とビジュアル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#. ビジュアルC++アプリケーションの配置の詳細については、「 Visual C++アプリケーションの ClickOnce 配置」を参照してください。For information about deploying Visual C++ applications, see ClickOnce Deployment for Visual C++ Applications.

ClickOnceClickOnce 展開は、展開における 3 つの主な問題を克服します。deployment overcomes three major issues in deployment:

  • アプリケーションの更新中における問題。Difficulties in updating applications. Microsoft Windows インストーラーの展開でアプリケーションが更新されるたびにユーザーが 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. アプリケーションの変更された部分のみがダウンロードされ、更新されたアプリケーションの全体はサイド バイ サイドの新しいフォルダーから再インストールされます。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 インストーラーの展開、多くの場合、アプリケーションはバージョン管理の競合が発生する可能性を伴うの共有コンポーネントに依存しています。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 インストーラーの展開は、管理者権限を必要とし、限られたユーザーにのみインストールが制限されます。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 ベースのアプリケーションではなく Web アプリケーションを作成することにした場合に発生することがありました。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とは、テクノロジを使用してClickOnceClickOnce公開された Windows Presentation Foundation (xbap)、Windows フォーム ( .exe)、コンソールアプリケーション ( .exe)、または Office ソリューション ( .dll) です。A ClickOnceClickOnce application is any Windows Presentation Foundation (.xbap), Windows Forms (.exe), console application (.exe), or Office solution (.dll) published using ClickOnceClickOnce technology. アプリケーションはClickOnceClickOnce 、Web ページ、ネットワークファイル共有、または cd-rom などのメディアから、3つの異なる方法で公開できます。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 を使用することによって、確立された信頼できるソースから取得される正当なプログラムとして有害なプログラムが人々を防ぐのに役立ちます。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 フォームアプリケーション、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配置アーキテクチャは、アプリケーションマニフェストと配置マニフェストの2つの 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. アプリケーション開発者は、 Windows Software Development Kit (SDK)Windows Software Development Kit (SDK)Visual Studio の発行ウィザードまたはのマニフェスト生成および編集ツール (mage.exe) を使用して、アプリケーションマニフェストを作成します。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 Software Development Kit (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. 配置場所は、Web サーバー、ネットワーク ファイル共有、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

配置場所に配置されたら、エンド ユーザーは Web ページ上またはフォルダー内の配置マニフェスト ファイルを表すアイコンをクリックすることで、アプリケーションをダウンロードしてインストールできます。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

Note

また、アプリケーションを [スタート] メニューに追加したり、[プログラムの追加と削除] グループを削除したりすると、Web アプリケーションのように動作するようになります。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.

Note

これらの手順は、Visual Studio の発行ウィザードを使用して実行できます。The Publish Wizard in Visual Studio can be used to perform these steps.

配置マニフェストには、配置場所だけでなく、アプリケーションで最新バージョンをチェックする更新場所 (Web ページまたはネットワーク ファイル共有) も含まれます。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. 更新動作は、配置マニフェストで指定することも、 ClickOnceClickOnce api を使用してアプリケーションのユーザーインターフェイスでユーザーの選択として表示することもできます。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 説明Description
[セキュリティ] ページ (プロジェクト デザイナー)Security Page, Project Designer アプリケーションマニフェストと配置マニフェストに署名します。Signs the application and deployment manifests.
[発行] ページ (プロジェクト デザイナー)Publish Page, Project Designer Visual Basic アプリケーションとビジュアル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、ビジュアルC#、およびビジュアル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.... 配置Microsoft.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

関連項目See also