Sécurité et déploiement ClickOnce

ClickOnce est une technologie de déploiement qui vous permet de créer des applications Windows de mise à jour automatique qui peuvent être installées et exécutées avec une intervention minimale de l'utilisateur. Visual Studio assure la prise en charge complète de la publication et de la mise à jour des applications déployées avec la technologie ClickOnce si vous avez développé vos projets avec Visual Basic et Visual C#. Pour plus d'informations sur le déploiement d'applications Visual C++, consultez Déploiement de ClickOnce pour les applications Visual C++.

Le déploiement ClickOnce vient à bout de trois problèmes majeurs au niveau du déploiement :

  • Difficultés liées à la mise à jour des applications. Avec le déploiement de Microsoft Windows Installer, à 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 le déploiement ClickOnce, vous pouvez fournir des mises à jour automatiquement. Seules les parties de l'application qui ont changé sont téléchargées, puis, l'application complète, mise à jour est réinstallée à partir d'un nouveau dossier côte à côte.

  • Impact sur l'ordinateur de l'utilisateur. Avec un déploiement Windows Installer, les applications dépendent souvent des composants partagés, d'où l'existence d'un risque potentiel de conflit de versions. Dans le cas d'un déploiement ClickOnce, chaque application est autonome et ne peut pas interférer avec d'autres applications.

  • Autorisations de sécurité. Un déploiement Windows Installer exige des autorisations administratives et n'autorise qu'une installation limitée de l'utilisateur ; le déploiement ClickOnce autorise des utilisateurs dépourvus de privilèges administratifs à effectuer l'installation et n'octroie que ces autorisations de sécurité d'accès du code nécessaires à l'application.

Par le passé, ces problèmes amenaient parfois les développeurs à décider de créer des applications Web au lieu d'applications Windows, privilégiant ainsi la simplicité d'utilisation plutôt que la richesse de l'interface utilisateur. Avec les applications déployées à l'aide de ClickOnce, vous pouvez bénéficier du meilleur des deux technologies.

Définition d'une application ClickOnce

Une application ClickOnce correspond à toute application Windows Presentation Foundation (.xbap), Windows Forms (.exe), application console (.exe) ou solution Office (.dll) publiée à l'aide de la technologie ClickOnce. Vous pouvez publier une application ClickOnce de trois façons différentes : à partir d'une page Web, d'un partage de fichiers réseau ou d'un média tel qu'un CD-ROM. Une application ClickOnce peut être installée sur l'ordinateur d'un utilisateur final et exécutée localement même si l'ordinateur est hors connexion ou elle peut être exécutée uniquement en mode en ligne sans installer aucun élément de façon permanente sur l'ordinateur de l'utilisateur final. Pour plus d'informations, consultez Choix d'une stratégie de déploiement ClickOnce.

Les applications ClickOnce peuvent être se mettre à jour automatiquement ; elles peuvent vérifier l'existence de versions plus récentes dès qu'elles sont disponibles et remplacer automatiquement tous les fichiers mis à jour. Le développeur peut définir le comportement de mise à jour et un administrateur réseau peut contrôler les stratégies de mise à jour, en marquant, par exemple, une mise à jour comme étant obligatoire. Les mises à jour peuvent également être annulées et la version antérieure restaurée par l'utilisateur final ou par un administrateur. Pour plus d'informations, consultez Choix d'une stratégie de mise à jour ClickOnce.

Dans la mesure où les applications ClickOnce sont isolées, l'installation ou l'exécution d'une application ClickOnce ne peut pas arrêter des applications existantes. Les applications ClickOnce sont autonomes ; chaque application ClickOnce est installée sur et exécutée à partir d'un cache par utilisateur, par application sécurisé. Les applications ClickOnce sont exécutées dans les zones de sécurité Internet ou intranet. Le cas échéant, l'application peut demander des autorisations de sécurité élevées. Pour plus d'informations, consultez Sécurisation des applications ClickOnce.

Fonctionnement de ClickOnce

La sécurité ClickOnce principale est basée sur des certificats, des stratégies de sécurité d'accès du code et l'invite d'approbation ClickOnce.

Certificats

Les certificats Authenticode sont utilisés pour vérifier l'authenticité de l'éditeur de l'application. En utilisant Authenticode pour le déploiement des applications, ClickOnce permet d'éviter qu'un programme préjudiciable se présente comme un programme légitime provenant d'une source établie et digne de confiance. Éventuellement, les certificats peuvent également être utilisés pour signer les manifestes de déploiement et d'application afin de prouver que les fichiers n'ont pas été falsifiés. Pour plus d'informations, consultez ClickOnce et Authenticode. Les certificats peuvent également être utilisés pour configurer des ordinateurs clients de sorte qu'ils aient une liste d'éditeurs approuvés. Si une application provient d'un éditeur approuvé, elle peut être installée sans intervention de l'utilisateur. Pour plus d'informations, consultez Vue d'ensemble du déploiement d'applications approuvées.

Sécurité d'accès du code

La sécurité d'accès du code permet de limiter l'accès du code aux ressources protégées. Dans la plupart des cas, vous pouvez choisir les zones Internet ou intranet local pour limiter les autorisations. Utilisez la page Sécurité dans le Concepteur de projets afin de demander la zone appropriée pour l'application. Vous pouvez également déboguer les applications avec des autorisations restreintes pour émuler l'expérience de l'utilisateur. Pour plus d'informations, consultez Sécurité d'accès du code pour les applications ClickOnce.

Invite d'approbation ClickOnce

Si l'application demande plus d'autorisations que la zone n'en autorise, l'utilisateur final peut être invité à prendre une décision d'approbation. L'utilisateur final peut décider si l'exécution des applications ClickOnce telles que les applications Windows Forms, les applications Windows Presentation Foundation, les applications console, les applications du navigateur XAML et les solutions Office, est approuvée. Pour plus d'informations, consultez Comment : configurer le comportement de l'invite d'approbation ClickOnce.

Fonctionnement d'un déploiement ClickOnce

L'architecture de déploiement ClickOnce de base repose sur deux fichiers manifeste XML : un manifeste d'application et un manifeste de déploiement. Les fichiers sont utilisés pour décrire l'emplacement à partir duquel les applications ClickOnce sont installées, la manière dont elles sont mises à jour et le moment où elles le sont.

Publication d'applications ClickOnce

Le manifeste de l'application décrit l'application elle-même. Cela comprend les assemblys, les dépendances et les fichiers qui composent l'application, les autorisations requises et l'emplacement dans lequel les mises à jour seront disponibles. Le développeur d'applications crée le manifeste d'application à l'aide de l'Assistant Publication dans Visual Studio ou de l'Outil Manifest Generation and Editing (Mage.exe) dans le Kit de développement logiciel Windows. Pour plus d'informations, consultez Comment : publier une application ClickOnce à l'aide de l'Assistant Publication.

Le manifeste de déploiement décrit comment l'application est déployée. Cela inclut l'emplacement du manifeste de l'application, et la version de l'application que les clients doivent exécuter.

Déploiement d'applications ClickOnce

Après sa création, le manifeste de déploiement est copié vers l'emplacement de déploiement. Il peut s'agir d'un serveur Web, d'un partage de fichiers réseau ou de médias tels qu'un CD-ROM. Le manifeste d'application et tous les fichiers de l'application sont également copiés vers un emplacement de déploiement spécifié dans le manifeste de déploiement. Il peut s'agir du même emplacement que celui du déploiement ou d'un autre. Lors de l'utilisation de l'Assistant Publication dans Visual Studio, les opérations de copie sont exécutées automatiquement.

Installation des applications ClickOnce

Après le déploiement de l'application dans 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. Dans la plupart des cas, l'utilisateur final voit s'afficher une simple boîte de dialogue demandant à l'utilisateur de confirmer l'installation, après quoi l'installation continue et l'application est lancée sans autre intervention. Lorsque l'application requiert des autorisations élevées ou n'est pas signée par un certificat approuvé, la boîte de dialogue demande également à l'utilisateur d'accorder des autorisations pour que l'installation puisse continuer. Bien que les installations ClickOnce soient effectuées par utilisateur, l'élévation d'autorisations peut être requise si des composants requis nécessitent des privilèges d'administrateur. Pour plus d'informations sur les autorisations élevées, consultez Sécurisation des applications ClickOnce.

Les certificats peuvent être approuvés au niveau de l'ordinateur ou de l'entreprise, afin que les applications ClickOnce signées avec un certificat approuvé puissent s'installer silencieusement. Pour plus d'informations sur l'utilisation des certificats approuvés, consultez Vue d'ensemble du déploiement d'applications approuvées.

L'application peut être ajoutée au menu Démarrer de l'utilisateur et au groupe Ajout/Suppression de programmes du Panneau de configuration. Contrairement aux autres technologies de déploiement, aucun ajout n'est effectué dans le dossier Program Files ou le Registre et l'installation ne requiert aucun droit d'administration.

Notes

Il est également possible d'empêcher l'ajout de l'application au menu Démarrer et au groupe Ajout/Suppression de programmes. Elle se comporte, dans ce cas, comme une application Web.Pour plus d'informations, consultez Choix d'une stratégie de déploiement ClickOnce.

Mise à jour des applications ClickOnce

Lorsque les développeurs d'applications créent une version mise à jour de l'application, ils génèrent un manifeste d'application et copient les fichiers dans un emplacement de déploiement (en général, un dossier frère du dossier de déploiement d'application d'origine). L'administrateur met à jour le manifeste de déploiement pour qu'il pointe vers l'emplacement de la nouvelle version de l'application.

Notes

L'Assistant Publication dans Visual Studio peut être utilisé pour exécuter ces étapes.

En plus de l'emplacement de déploiement, le manifeste de déploiement contient un emplacement de mise à jour (une page Web ou un partage de fichiers réseau) où l'application vérifie les versions mises à jour. Les propriétés ClickOncePublish sont utilisées pour spécifier la date et la fréquence auxquelles l'application doit vérifier les mises à jour. Le comportement de mise à jour peut être spécifié dans le manifeste de déploiement ou il peut être présenté sous la forme d'un choix d'options utilisateur dans l'interface utilisateur de l'application au moyen des API ClickOnce. En outre, les propriétés Publish peuvent être employées pour configurer la mise à jour obligatoire ou restaurer une version antérieure. Pour plus d'informations, consultez Choix d'une stratégie de mise à jour ClickOnce.

Programmes d'installation tiers

Vous pouvez personnaliser votre programme d'installation ClickOnce pour installer des composants tiers avec votre 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 ainsi qu'un manifeste du package spécifique à la langue. Pour plus d'informations, consultez Création de packages de programme d'amorçage.

Outils ClickOnce

Le tableau suivant contient les outils que vous pouvez utiliser pour générer, modifier, signer et signer à nouveau les manifestes de déploiement et d'application.

Outil

Description

Page Sécurité, Concepteur de projets

Signe les manifestes d'application et de déploiement

Page Publier, Concepteur de projets

Génère et modifie les manifestes de déploiement et d'application pour les applications Visual Basic et Visual C#.

Mage.exe (outil Manifest Generation and Editing)

Génère les manifestes de déploiement et d'application pour les applications Visual Basic, Visual C# et Visual C++.

Signe et signe à nouveau les manifestes d'application et de déploiement

Peut être exécuté à partir de scripts de commandes par lot et de l'invite de commandes.

MageUI.exe (outil Manifest Generation and Editing, client graphique)

Génère et modifie les manifestes d'application et de déploiement

Signe et signe à nouveau les manifestes d'application et de déploiement

GenerateApplicationManifest, tâche

Génère le manifeste d'application.

Peut être exécuté à partir de MSBuild. Pour plus d'informations, consultez Référence MSBuild.

GenerateDeploymentManifest, tâche

Génère le manifeste de déploiement.

Peut être exécuté à partir de MSBuild. Pour plus d'informations, consultez Référence MSBuild.

SignFile, tâche

Signe les manifestes d'application et de déploiement

Peut être exécuté à partir de MSBuild. Pour plus d'informations, consultez Référence MSBuild.

Microsoft.Build.Tasks.Deployment.ManifestUtilities

Développez votre propre application pour générer les manifestes de déploiement et d'application.

Le tableau suivant indique la version du .NET Framework obligatoire pour prendre en charge les applications ClickOnce dans ces navigateurs.

Lecteur

Version du .NET Framework

Internet Explorer

2.0, 3.0, 3.5, 3.5 SP1, 4

Firefox

2.0 SP1, 3.5 SP1, 4

Voir aussi

Concepts

Déploiement ClickOnce sur Windows Vista

Publication d'applications ClickOnce

Sécurisation des applications ClickOnce

Déploiement de composants COM avec ClickOnce

Génération d'applications ClickOnce à partir de la ligne de commande

Débogage des applications ClickOnce qui utilisent System.Deployment.Application