Sécurité et déploiement ClickOnce

ClickOnce est une technologie de déploiement qui permet de créer des applications Windows à mise à jour automatique et pouvant être installées et exécutées avec un minimum d’intervention de l’utilisateur. Visual 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 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 ClickOnce pour les applications Visual C++.

Le déploiement ClickOnce résout trois problèmes majeurs dans le déploiement :

  • Difficultés de 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 été modifiées 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.

  • Impact sur l’ordinateur de l’utilisateur. Avec le déploiement de Windows Installer, les applications s’appuient souvent sur des composants partagés, avec le risque de conflits de contrôle de version ; avec le déploiement ClickOnce, chaque application est autonome et ne peut pas interférer avec d’autres applications.

  • Autorisations de sécurité. Le déploiement de Windows Installer nécessite des autorisations d’administration et autorise uniquement une installation utilisateur limitée ; le déploiement ClickOnce permet aux utilisateurs non administratifs d’installer et accorde uniquement les autorisations de sécurité d’accès au code nécessaires pour l’application.

    Dans le passé, ces problèmes ont parfois amené les développeurs à décider de créer des applications web au lieu d’applications Windows, sacrifiant une interface utilisateur riche pour faciliter l’installation. En utilisant des applications déployées à l’aide de ClickOnce, vous pouvez disposer du meilleur des deux technologies.

Qu’est-ce qu’une application ClickOnce ?

Une application ClickOnce est n’importe quelle 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 manières différentes : à partir d’une page Web, d’un partage de fichiers réseau ou d’un support hérité tel qu’un CD-ROM. Une application ClickOnce 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. Pour plus d’informations, consultez Choisir une stratégie de déploiement ClickOnce.

Les applications ClickOnce peuvent être mises à jour automatiquement ; elles peuvent rechercher les versions plus récentes à mesure qu’elles deviennent 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 aussi contrôler les stratégies de mise à jour, par exemple en marquant une mise à jour comme étant obligatoire. Les mises à jour peuvent également être restaurées vers une version antérieure par l’utilisateur final ou par un administrateur. Pour plus d’informations, consultez Choisir une stratégie de mise à jour ClickOnce.

Étant donné que les applications ClickOnce sont isolées, l’installation ou l’exécution d’une application ClickOnce ne peut pas interrompre les applications existantes. Les applications ClickOnce sont autonomes ; chaque application ClickOnce est installée sur et exécutée à partir d’un cache sécurisé par utilisateur et par application. Les applications ClickOnce s’exécutent dans les zones de sécurité Internet ou Intranet. Si nécessaire, l’application peut demander des autorisations de sécurité élevées. Pour plus d’informations, consultez Sécuriser les applications ClickOnce.

Fonctionnement de la sécurité ClickOnce

La sécurité ClickOnce principale est basée sur des certificats, des stratégies de sécurité d’accès au 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 d’applications, ClickOnce permet d’empêcher un programme nuisible de se présenter comme un programme légitime provenant d’une source établie et fiable. Si vous le souhaitez, les certificats peuvent également être utilisés pour signer les manifestes d’application et de déploiement, 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 les ordinateurs clients, afin qu’ils disposent d’une liste d’éditeurs approuvés. Si une application provient d’un éditeur approuvé, elle peut être installée sans aucune interaction 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 ProjectDesigner pour demander la zone appropriée pour l’application. Vous pouvez également déboguer des applications avec des autorisations restreintes pour émuler l’expérience de l’utilisateur final. 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 ne le permet, l’utilisateur final peut être invité à prendre une décision d’approbation. L’utilisateur final peut décider si les applications ClickOnce telles que les applications Windows Forms, les applications Windows Presentation Foundation, les applications console, les applications de navigateur XAML et les solutions Office sont approuvées pour s’exécuter. Pour plus d’informations, consultez Guide pratique pour configurer le comportement de l’invite d’approbation ClickOnce.

Fonctionnement du déploiement ClickOnce

L’architecture de déploiement ClickOnce principale est basée 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 d’installation des applications ClickOnce, leur mode de mise à jour et leur date de mise à jour.

Publier des applications ClickOnce

Le manifeste d’application décrit l’application elle-même. Cela inclut les assemblys, les dépendances et les fichiers qui composent l’application, les autorisations requises et l’emplacement où les mises à jour seront disponibles. Le développeur d’application crée le manifeste de l’application à l’aide de l’Assistant Publication dans Visual Studio (outil Publier pour .NET Core et .NET 5+) ou de l’Outil Manifest Generation and Editing (Mage.exe) dans le kit de développement logiciel (SDK) Windows. Pour plus d'informations, consultez les pages suivantes :

Le manifeste de déploiement décrit la façon dont 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.

Remarque

Dans ClickOnce pour .NET Core 3.1 et .NET 5 (ou version ultérieure), utilisez dotnet-mage.exe au lieu de Mage.exe. Pour plus d’informations, consultez ClickOnce pour .NET.

Déployer des applications ClickOnce

Une fois créé, le manifeste de déploiement est copié dans l’emplacement de déploiement. Il peut s’agir d’un serveur web, d’un partage de fichiers réseau ou d’un média hérité comme un CD. Le manifeste de l’application et tous les fichiers d’application sont également copiés dans 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 emplacement. Lorsque vous utilisez l’Assistant Publication dans Visual Studio, les opérations de copie sont effectuées automatiquement.

Installer des applications ClickOnce

Une fois l’application 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. Dans la plupart des cas, une boîte de dialogue simple s’affiche à l’utilisateur final pour lui demander de confirmer l’installation, après quoi l’installation se poursuit et l’application est démarrée sans intervention supplémentaire. Dans les cas où l’application nécessite 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 avant que l’installation puisse continuer. Bien que les installations de ClickOnce soient par utilisateur, une élévation d’autorisation peut être requise si des conditions préalables 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 en mode silencieux. Pour plus d’informations sur les certificats approuvées, 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 Ajouter ou supprimer des programmes dans le Panneau de configuration. Contrairement à d’autres technologies de déploiement, rien n’est ajouté au dossier Fichiers programme ou au registre, et aucun droit d’administration n’est requis pour l’installation

Notes

Il est également possible d’empêcher l’ajout de l’application au menu Démarrer et au groupe Ajouter ou supprimer des programmes, ce qui en fait une application web. Pour plus d’informations, consultez Choisir une stratégie de déploiement ClickOnce.

Mettre à jour des applications ClickOnce

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 des fichiers vers un emplacement de déploiement, généralement un dossier frère dans le dossier de déploiement d’origine de l’application. 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 effectuer ces étapes. Pour .NET Core et .NET 5+, l’outil Publier fournit ces étapes.

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) où l’application recherche les versions mises à jour. Les propriétés ClickOnce Publish sont utilisées pour spécifier quand et à quelle fréquence l’application doit rechercher des mises à jour. 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 utilisateur dans l’interface utilisateur de l’application au moyen des API ClickOnce. En outre, les propriétés Publish peuvent être utilisées pour rendre les mises à jour obligatoires ou pour 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 et un manifeste de package propre à la langue. Pour plus d’informations, consultez Création de packages de programme d’amorçage.

Outils ClickOnce

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. Pour .NET Core et .NET 5+, des options similaires aux attributs MSBuild sont définies à l’aide du profil de publication.

Outil Description
Page Sécurité, Concepteur de projets Signe les manifestes d'application et de déploiement. Pour .NET Core et .NET 5+, ces paramètres se trouvent dans le profil de publication.
Page Publier, Concepteur de projets Génère et modifie les manifestes d’application et de déploiement pour les applications Visual Basic et Visual C#. Pour .NET Core et .NET 5+, ces paramètres se trouvent dans le profil de publication.
Mage.exe (outil Manifest Generation and Editing) Génère les manifestes d’application et de déploiement 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 par lots et de l’invite de commandes.
dotnetmage.exe (outil Manifest Generation and Editing) Génère les manifestes d’application et de déploiement pour les applications .N7 5+ C# et Visual Basic. L’utilisation équivaut à Mage.exe.

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

Peut être exécuté à partir de scripts par lots 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 Informations de référence sur MSBuild.
GenerateDeploymentManifest (tâche) Génère le manifeste de déploiement.

Peut être exécuté à partir de MSBuild. Pour plus d’informations, consultez Informations de référence sur 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 Informations de référence sur MSBuild.
Microsoft.Build.Tasks.Deployment.ManifestUtilities Développez votre propre application pour générer l’application et les manifestes de déploiement.

Le tableau suivant montre la version .NET Framework requise pour prendre en charge les applications ClickOnce dans ces navigateurs.

Browser Version du .NET Framework
Internet Explorer 2.0, 3.0, 3.5, 3.5 SP1, 4
Firefox 2.0 SP1, 3.5 SP1, 4
Chrome 3,5
Microsoft Edge 3,5