Sécurité et déploiement ClickOnceClickOnce security and deployment

ClickOnceClickOnce est une technologie de déploiement qui vous permet de créer des applications Windows à mise à jour automatique qui peuvent être installées et exécutées avec une intervention minimale de l’utilisateur.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 fournit une prise en charge complète de la publication et de la mise à jour des applications déployées avec la technologie ClickOnce C#si vous avez développé vos projets avec Visual Basic et Visual.provides full support for publishing and updating applications deployed with ClickOnce technology if you have developed your projects with Visual Basic and Visual C#. Pour plus d’informations sur le C++ déploiement d’applications visuelles, consultez déploiement ClickOnce pour les applications visuelles C++ .For information about deploying Visual C++ applications, see ClickOnce Deployment for Visual C++ Applications.

le déploiement de ClickOnceClickOnce passe par trois problèmes majeurs dans le déploiement :ClickOnceClickOnce deployment overcomes three major issues in deployment:

  • Difficultés dans la mise à jour des applications.Difficulties in updating applications. Avec Microsoft Windows Installer déploiement, chaque fois qu’une application est mise à jour, l’utilisateur peut installer une mise à jour, un fichier MSP et l’appliquer au produit installé. avec ClickOnceClickOnce déploiement, vous pouvez fournir des mises à jour automatiquement.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. Seules les parties de l’application qui ont changé sont téléchargées, puis l’application complète et mise à jour est réinstallée à partir d’un nouveau dossier côte à côte.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 sur l’ordinateur de l’utilisateur.Impact to the user's computer. Avec le déploiement Windows Installer, les applications s’appuient souvent sur des composants partagés, avec la possibilité de conflits de Versioning. avec le déploiement ClickOnceClickOnce, chaque application est autonome et ne peut pas interférer avec d’autres applications.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.

  • Autorisations de sécurité.Security permissions. Windows Installer déploiement requiert des autorisations d’administration et n’autorise que l’installation utilisateur limitée. ClickOnceClickOnce déploiement permet aux utilisateurs non-administrateurs d’installer et d’accorder uniquement les autorisations de sécurité d’accès du code nécessaires pour l’application.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.

    Par le passé, ces problèmes ont parfois amené les développeurs à décider de créer des applications Web plutôt que des applications Windows, en sacrifiant une interface utilisateur riche pour faciliter l’installation.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. En utilisant des applications déployées à l’aide de ClickOnceClickOnce, vous pouvez bénéficier du meilleur des deux technologies.By using applications deployed using ClickOnceClickOnce, you can have the best of both technologies.

Qu’est-ce qu’une application ClickOnce ?What is a ClickOnce application?

Une application ClickOnceClickOnce est un Windows Presentation Foundation ( . XBAP), Windows Forms ( . exe), une application console ( . exe) ou une solution Office ( . dll) publiée à l’aide de la technologie ClickOnceClickOnce.A ClickOnceClickOnce application is any Windows Presentation Foundation (.xbap), Windows Forms (.exe), console application (.exe), or Office solution (.dll) published using ClickOnceClickOnce technology. Vous pouvez publier une application ClickOnceClickOnce de trois façons différentes : à partir d’une page Web, à partir d’un partage de fichiers réseau ou à partir d’un support tel qu’un 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. Une application ClickOnceClickOnce peut être installée sur l’ordinateur d’un utilisateur final et s’exécuter localement, même lorsque l’ordinateur est hors connexion, ou elle peut être exécutée en mode en ligne uniquement sans installer définitivement quoi que ce soit sur l’ordinateur de l’utilisateur final.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. Pour plus d’informations, consultez choisir une stratégie de déploiement ClickOnce.For more information, see Choose a ClickOnce deployment strategy.

les applications ClickOnceClickOnce peuvent être mises à jour automatiquement ; ils peuvent rechercher les versions plus récentes dès qu’elles sont disponibles et remplacer automatiquement les fichiers mis à jour.ClickOnceClickOnce applications can be self-updating; they can check for newer versions as they become available and automatically replace any updated files. Le développeur peut définir le comportement de mise à jour, et un administrateur réseau peut aussi contrôler les stratégies de mise à jour, par exemple en marquant une mise à jour comme étant obligatoire.The developer can specify the update behavior; a network administrator can also control update strategies, for example, marking an update as mandatory. Les mises à jour peuvent également être restaurées vers une version antérieure par l’utilisateur final ou par un administrateur.Updates can also be rolled back to an earlier version by the end user or by an administrator. Pour plus d’informations, consultez choisir une stratégie de mise à jour ClickOnce.For more information, see Choose a ClickOnce update strategy.

Étant donné que ClickOnceClickOnce applications sont isolées, l’installation ou l’exécution d’une application ClickOnceClickOnce ne peut pas interrompre les applications existantes.Because ClickOnceClickOnce applications are isolated, installing or running a ClickOnceClickOnce application cannot break existing applications. les applications ClickOnceClickOnce sont autonomes ; chaque ClickOnceClickOnce application est installée et exécutée à partir d’un cache par utilisateur et par application sécurisé.ClickOnceClickOnce applications are self-contained; each ClickOnceClickOnce application is installed to and run from a secure per-user, per-application cache. ClickOnceClickOnce applications s’exécutent dans les zones de sécurité Internet ou intranet.applications run in the Internet or Intranet security zones. Si nécessaire, l’application peut demander des autorisations de sécurité élevées.If necessary, the application can request elevated security permissions. Pour plus d’informations, consultez sécuriser des applications ClickOnce.For more information, see Secure ClickOnce applications.

Fonctionnement de la sécurité ClickOnceHow ClickOnce security works

La sécurité de base ClickOnceClickOnce est basée sur les certificats, les stratégies de sécurité d’accès du code et l’invite d’approbation ClickOnce.The core ClickOnceClickOnce security is based on certificates, code access security policies, and the ClickOnce trust prompt.

CertificatsCertificates

Les certificats Authenticode sont utilisés pour vérifier l’authenticité de l’éditeur de l’application.Authenticode certificates are used to verify the authenticity of the application's publisher. En utilisant Authenticode pour le déploiement d’applications, ClickOnce permet d’éviter qu’un programme dangereux se présente comme un programme légitime provenant d’une source établie et digne de confiance.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. Vous pouvez également utiliser des certificats pour signer les manifestes d’application et de déploiement afin de prouver que les fichiers n’ont pas été falsifiés.Optionally, certificates can also be used to sign the application and deployment manifests to prove that the files have not been tampered with. Pour plus d’informations, consultez ClickOnce et Authenticode.For more information, see ClickOnce and Authenticode. Vous pouvez également utiliser des certificats pour configurer les ordinateurs clients de sorte qu’ils disposent d’une liste d’éditeurs approuvés.Certificates can also be used to configure client computers to have a list of trusted publishers. Si une application provient d’un éditeur approuvé, elle peut être installée sans intervention de l’utilisateur.If an application comes from a trusted publisher, it can be installed without any user interaction. Pour plus d’informations, consultez Vue d’ensemble du déploiement d’applications approuvées.For more information, see Trusted application deployment overview.

Sécurité d'accès du codeCode access security

La sécurité d’accès du code permet de limiter l’accès du code aux ressources protégées.Code access security helps limit the access that code has to protected resources. Dans la plupart des cas, vous pouvez choisir les zones Internet ou Intranet local pour limiter les autorisations.In most cases, you can choose the Internet or Local Intranet zones to limit the permissions. Utilisez la page sécurité dans ProjectDesigner pour demander la zone appropriée pour l’application.Use the Security page in the ProjectDesigner to request the zone appropriate for the application. Vous pouvez également déboguer des applications avec des autorisations restreintes pour émuler l’expérience de l’utilisateur final.You can also debug applications with restricted permissions to emulate the end-user experience. Pour plus d’informations, consultez Sécurité d’accès du code pour les applications ClickOnce.For more information, see Code access security for ClickOnce applications.

Invite d’approbation ClickOnceClickOnce trust prompt

Si l’application demande plus d’autorisations que la zone ne l’autorise, l’utilisateur final peut être invité à prendre une décision d’approbation.If the application requests more permissions than the zone allows, the end user can be prompted to make a trust decision. L’utilisateur final peut décider s’il est possible d’exécuter des applications ClickOnce telles que Windows Forms applications, des applications Windows Presentation Foundation, des applications console, des applications de navigateur XAML et des solutions Office.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. Pour plus d’informations, consultez Comment : configurer le comportement de l’invite d’approbation ClickOnce.For more information, see How to: Configure the ClickOnce trust prompt behavior.

Fonctionnement du déploiement ClickOnceHow ClickOnce deployment works

L’architecture de déploiement ClickOnceClickOnce de base est basée sur deux fichiers manifeste XML : un manifeste d’application et un manifeste de déploiement.The core ClickOnceClickOnce deployment architecture is based on two XML manifest files: an application manifest and a deployment manifest. Les fichiers sont utilisés pour décrire l’emplacement d’installation des applications ClickOnce, comment elles sont mises à jour et quand elles sont mises à jour.The files are used to describe where the ClickOnce applications are installed from, how they are updated, and when they are updated.

Publier des applications ClickOncePublish ClickOnce applications

Le manifeste d’application décrit l’application elle-même.The application manifest describes the application itself. Cela comprend les assemblys, les dépendances et les fichiers qui composent l’application, les autorisations requises et l’emplacement où les mises à jour seront disponibles.This includes the assemblies, the dependencies and files that make up the application, the required permissions, and the location where updates will be available. Le développeur d’applications crée le manifeste d’application à l’aide de l’Assistant Publication dans Visual Studio ou du Outil Manifest Generation and Editing (Mage. exe) dans le Kit de développement logiciel WindowsWindows 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 Kit de développement logiciel WindowsWindows Software Development Kit (SDK). Pour plus d’informations, consultez Comment : publier une application ClickOnce à l’aide de l’Assistant Publication.For more information, see How to: Publish a ClickOnce application using the Publish Wizard.

Le manifeste de déploiement décrit la façon dont l’application est déployée.The deployment manifest describes how the application is deployed. Cela comprend l’emplacement du manifeste d’application et la version de l’application que les clients doivent exécuter.This includes the location of the application manifest, and the version of the application that clients should run.

Déployer des applications ClickOnceDeploy ClickOnce applications

Une fois créé, le manifeste de déploiement est copié à l’emplacement de déploiement.After it is created, the deployment manifest is copied to the deployment location. Il peut s’agir d’un serveur web, d’un partage de fichiers réseau ou d’un support comme un CD-ROM.This can be a Web server, network file share, or media such as a CD. Le manifeste d’application et tous les fichiers d’application sont également copiés vers un emplacement de déploiement spécifié dans le manifeste de déploiement.The application manifest and all the application files are also copied to a deployment location that is specified in the deployment manifest. Il peut s’agir du même emplacement que celui du déploiement ou d’un autre emplacement.This can be the same as the deployment location, or it can be a different location. Lors de l’utilisation de l' Assistant Publication dans Visual Studio, les opérations de copie sont effectuées automatiquement.When using the Publish Wizard in Visual Studio, the copy operations are performed automatically.

Installer des applications ClickOnceInstall ClickOnce applications

Une fois déployée sur l’emplacement de déploiement, les utilisateurs finaux peuvent télécharger et installer l’application en cliquant sur une icône représentant le fichier manifeste de déploiement sur une page Web ou dans un dossier.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. Dans la plupart des cas, l’utilisateur final reçoit une boîte de dialogue simple demandant à l’utilisateur de confirmer l’installation, après quoi l’installation se poursuit et l’application est démarrée sans intervention supplémentaire.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. Dans les cas où l’application requiert des autorisations élevées ou si l’application n’est pas signée par un certificat approuvé, la boîte de dialogue demande également à l’utilisateur d’accorder l’autorisation pour que l’installation puisse continuer.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. Bien que les installations ClickOnce soient par utilisateur, l’élévation d’autorisations peut être nécessaire si des conditions préalables requièrent des privilèges d’administrateur.Though ClickOnce installs are per-user, permission elevation may be required if there are prerequisites that require administrator privileges. Pour plus d’informations sur les autorisations élevées, consultez sécurisation des applications ClickOnce.For more information about elevated permissions, see Securing ClickOnce applications.

Les certificats peuvent être approuvés au niveau de l’ordinateur ou de l’entreprise, de sorte que les applications ClickOnce signées avec un certificat approuvé peuvent s’installer en mode silencieux.Certificates can be trusted at the machine or enterprise level, so that ClickOnce applications signed with a trusted certificate can install silently. Pour plus d’informations sur les certificats approuvés, consultez vue d’ensemble du déploiement d’applications approuvées.For more information about trusted certificates, see Trusted application deployment overview.

L’application peut être ajoutée au menu Démarrer de l’utilisateur et au groupe Ajout/suppression de programmes dans le panneau de configuration.The application can be added to the user's Start menu and to the Add or Remove Programs group in the Control Panel. Contrairement à d’autres technologies de déploiement, rien n’est ajouté au dossier Program Files ou au registre, et aucun droit d’administration n’est requis pour l’installationUnlike other deployment technologies, nothing is added to the Program Files folder or the registry, and no administrative rights are required for installation

Note

Il est également possible d’empêcher l’application d’être ajoutée au menu Démarrer et au groupe Ajout/suppression de programmes , en faisant en sorte qu’elle se comporte comme une application 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. Pour plus d’informations, consultez choisir une stratégie de déploiement ClickOnce.For more information, see Choose a ClickOnce deployment strategy.

Mettre à jour les applications ClickOnceUpdate ClickOnce applications

Lorsque les développeurs d’applications créent une version mise à jour de l’application, ils génèrent un nouveau manifeste d’application et copient les fichiers dans un emplacement de déploiement, généralement un dossier frère dans le dossier de déploiement d’application d’origine.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. L’administrateur met à jour le manifeste de déploiement pour qu’il pointe vers l’emplacement de la nouvelle version de l’application.The administrator updates the deployment manifest to point to the location of the new version of the application.

Note

L' Assistant Publication dans Visual Studio peut être utilisé pour effectuer ces étapes.The Publish Wizard in Visual Studio can be used to perform these steps.

En plus de l’emplacement de déploiement, le manifeste de déploiement contient également un emplacement de mise à jour (une page Web ou un partage de fichiers réseau) dans lequel l’application recherche des versions mises à jour.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 propriétés de publication sont utilisées pour spécifier quand et à quelle fréquence l’application doit rechercher les mises à jour.Publish properties are used to specify when and how often the application should check for updates. Le comportement de mise à jour peut être spécifié dans le manifeste de déploiement, ou il peut être présenté en tant que choix de l’utilisateur dans l’interface utilisateur de l’application au moyen des 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. En outre, les propriétés Publish peuvent être utilisées pour rendre les mises à jour obligatoires ou pour restaurer une version antérieure.In addition, Publish properties can be employed to make updates mandatory or to roll back to an earlier version. Pour plus d’informations, consultez choix d’une stratégie de mise à jour ClickOnce.For more information, see Choosing a ClickOnce update strategy.

Programmes d’installation tiersThird party installers

Vous pouvez personnaliser votre programme d’installation ClickOnce pour installer des composants tiers en même temps que votre application.You can customize your ClickOnce installer to install third-party components along with your application. Vous devez disposer du package redistribuable (fichier. exe ou. msi) et décrire le package avec un manifeste de produit indépendant de la langue et un manifeste de package spécifique à une langue.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. Pour plus d’informations, consultez création de packages de programme d’amorçage.For more information, see Creating bootstrapper packages.

Outils ClickOnceClickOnce tools

Le tableau suivant présente les outils que vous pouvez utiliser pour générer, modifier, signer et signer à nouveau les manifestes d’application et de déploiement.The following table shows the tools that you can use to generate, edit, sign, and re-sign the application and deployment manifests.

OutilTool DescriptionDescription
Page Sécurité, Concepteur de projetSecurity Page, Project Designer Signe les manifestes d’application et de déploiement.Signs the application and deployment manifests.
Page Publier, Concepteur de projetPublish Page, Project Designer Génère et modifie les manifestes d’application et de déploiement pour les applications C# Visual Basic et visuelles.Generates and edits the application and deployment manifests for Visual Basic and Visual C# applications.
Mage.exe (outil Manifest Generation and Editing)Mage.exe (Manifest Generation and Editing Tool) Génère les manifestes d’application et de déploiement pour les C#applications Visual Basic, C++ visuelles et visuelles.Generates the application and deployment manifests for Visual Basic, Visual C#, and Visual C++ applications.

Signe et signe à nouveau les manifestes d’application et de déploiement.Signs and re-signs the application and deployment manifests.

Peut être exécuté à partir de scripts batch et de l’invite de commandes.Can be run from batch scripts and the command prompt.
MageUI.exe (outil Manifest Generation and Editing, client graphique)MageUI.exe (Manifest Generation and Editing Tool, Graphical Client) Génère et modifie les manifestes d’application et de déploiement.Generates and edits the application and deployment manifests.

Signe et signe à nouveau les manifestes d’application et de déploiement.Signs and re-signs the application and deployment manifests.
GenerateApplicationManifest, tâcheGenerateApplicationManifest task Génère le manifeste de l’application.Generates the application manifest.

Peut être exécuté à partir de MSBuild.Can be run from MSBuild. Pour plus d’informations, consultez Informations de référence sur MSBuild.For more information, see MSBuild reference.
Tâche GenerateDeploymentManifestGenerateDeploymentManifest task Génère le manifeste de déploiement.Generates the deployment manifest.

Peut être exécuté à partir de MSBuild.Can be run from MSBuild. Pour plus d’informations, consultez Informations de référence sur MSBuild.For more information, see MSBuild reference.
SignFile, tâcheSignFile task Signe les manifestes d’application et de déploiement.Signs the application and deployment manifests.

Peut être exécuté à partir de MSBuild.Can be run from MSBuild. Pour plus d’informations, consultez Informations de référence sur MSBuild.For more information, see MSBuild reference.
Microsoft. Build. Tasks. Deployment. ManifestUtilitiesMicrosoft.Build.Tasks.Deployment.ManifestUtilities Développez votre propre application pour générer les manifestes d’application et de déploiement.Develop your own application to generate the application and deployment manifests.

Le tableau suivant indique la version .NET Framework requise pour prendre en charge les applications ClickOnce dans ces navigateurs.The following table shows the .NET Framework version required to support ClickOnce applications in these browsers.

VisiteurBrowser Version du .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

Voir aussiSee also