Sdílet prostřednictvím


Vytváření aplikací ClickOnce pro ostatní k nasazení

Ne všichni vývojáři, kteří vytvářejí ClickOnce nasazení plánují nasadit aplikace sami sobě. Mnoho z nich pouze pomocí ClickOnce zabalí jejich aplikaci a pak předá soubory zákazníkovi, jako je například velká společnost. Zákazník bude ten, kdo bude odpovědný za hostitelské služby aplikace ve své síti. Toto téma popisuje některé potíže spočívající v takovýchto implementacích ve verzích rozhraní .NET Framework verze 3.5. Potom popisuje nové řešení poskytované pomocí nové funkce "použít manifest pro vztah důvěryhodnosti" v rozhraní .NET Framework 3.5. Nakonec dojde k doporučeným strategiím pro vytváření ClickOnce nasazení pro zákazníky, kteří stále používají starší verze rozhraní .NET Framework.

Problémy při vytváření nasazení pro zákazníky

K několika problémům dochází, pokud plánujete dodávat nasazení zákazníkovi. První se týká podepisování kódu. Za účelem nasazení napříč sítí musí být manifest nasazení a manifest aplikace ClickOnce nasazení podepsány pomocí digitálního certifikátu. To vyvolává otázku, zda chcete použít certifikát vývojářův nebo certifikát zákazníka při podpisu manifestů.

Volba, který certifikát bude použit je velmi důležitá, protože identita aplikace ClickOnce je založena na digitální signatuře manifestu nasazení. Pokud vývojář podepíše manifest nasazení, mohlo by to vést ke konfliktům pokud je zákazníkem velká společnost a více než jednoho oddělení společnosti implementuje upravené verze aplikace.

Dejme tomu, že Adventure Works má finanční oddělení a oddělení lidských zdrojů. Obě oddělení licencují aplikace ClickOnce ze společnosti Microsoft Corporation, která generuje sestavy z dat uložených v databázi SQL. Microsoft poskytuje každému oddělení verzi aplikace, která je přizpůsobena pro jejich data. Pokud jsou aplikace podepsány pomocí stejného certifikátu technologie Authenticode, nastane chyba, pokud se uživatel pokusí použít obě aplikace, protože ClickOnce bude považovat první a druhou aplikaci za shodné. V takovém případě může u zákazníka dojít k neočekávaným a nežádoucím vedlejším účinkům, které zahrnují ztrátu všech dat uložených místně aplikací.

Dalším problémem vztahujícím se k podepisování kódu je prvek deploymentProvider v manifestu nasazení, který udává ClickOnce, kde může vyhledat aktualizace aplikace. Tento prvek musí být přidán k manifestu nasazení před jeho podpisem. Pokud je tento prvek přidán později, manifest nasazení musí být znovu podepsán.

Vyžádání zákazníka o podepsání manifestu nasazení

Jedním řešením tohoto problému nejedinečných nasazení je mít manifest aplikace podepsaný vývojářem a manifest nasazení podepsaný zákazníkem. Zatímco tento přístup funguje, zavádí jiné problémy. Vzhledem k tomu, že certifikát technologie Authenticode musí zůstat chráněným prostředkem, zákazník nemůže pouze dát vývojáři certifikát k podepsání nasazení. Zatímco zákazník může sám podepsat manifest nasazení pomocí volně dostupných nástrojů sady .NET Framework SDK, může to vyžadovat další technické znalosti, než které je zákazník ochoten nebo schopen poskytnout. V takových případech vývojář obvykle vytvoří aplikaci, webovou stránku nebo jiný mechanismus, přes který zákazník může předložit jeho verzi aplikace pro podepisování.

Vliv podepisování zákazníka na zabezpečení aplikace ClickOnce

I v případě, že se vývojář a zákazník dohodnou, že by měl zákazník podepsat manifest aplikace, způsobí to další problémy, které obklopují identitu aplikace, zejména jak platí pro nasazení důvěryhodné aplikace. (Další informace o této funkci naleznete v části Důvěryhodný přehled nasazení aplikace.) Řekněme, že Adventure Works chce konfigurovat své klientské počítače tak, aby se jakákoli aplikace poskytovaná společností Microsoft spouštěla s úplným vztahem důvěryhodnosti. Pokud Adventure Works podepíše manifest nasazení, potom ClickOnce použije bezpečnostní signaturu Adventure Works pro určení úrovně vztahu důvěryhodnosti aplikace.

Vytváření zákaznických nasazení pomocí manifestu aplikace pro zabezpečení

ClickOnce v rozhraní .NET Framework 3.5 obsahuje novou funkci, která poskytuje vývojářům a zákazníkům nové řešení pro scénář toho, jak by měly být manifesty podepsány. Manifest aplikace ClickOnce podporuje nový prvek s názvem <useManifestForTrust>, který vývojáři umožní označit, že digitální signatura manifestu aplikace je to, co má být použito pro rozhodování o vztahu důvěryhodnosti. Vývojář používá balící nástroje ClickOnce – například Mage.exe, MageUI.exe a Visual Studio – pro zahrnutí tohoto prvku do manifestu aplikace, jako i vložení jejich názvu vydavatele a názvu aplikace do manifestu.

Při použití <useManifestForTrust>, nemusí být manifest nasazení podepsán certifikátem technologie Authenticode, který je vydán certifikačním úřadem. Místo toho jej lze podepsat s certifikátem co se nazývá certifikát podepsaný svým držitelem. Certifikát podepsaný svým držitelem je generován zákazníkem nebo vývojářem pomocí standardních nástrojů rozhraní .NET Framework SDK a potom vložen do manifestu nasazení pomocí standardních nástrojů pro nasazení systému ClickOnce. Další informace naleznete v tématu Makecert.exe (Certificate Creation Tool).

Použití certifikátu podepsaného svým držitelem pro manifest nasazení nabízí několik výhod. Odstraněním potřeby zákazníka k získání nebo vytvoření vlastního certifikátu technologie Authenticode <useManifestForTrust> zjednodušuje nasazení pro zákazníka, zatímco vývojáři je umožněno zachovat vlastní identitu výrobce v aplikaci. Výsledkem je sada podepsaných nasazení, které jsou bezpečnější a mají jedinečné identity aplikace. To eliminuje potenciální konflikt, ke kterému může dojít nasazováním stejné aplikace více zákazníkům.

Podrobné informace o vytvoření ClickOnce nasazení s <useManifestForTrust> povoleného, viz Podrobné pokyny: Ruční nasazení aplikace ClickOnce nevyžadující opětovné podepsání a zachovávající informace o výrobci.

Jak manifest aplikace pro vztah důvěryhodnosti pracuje při spuštění

Chcete-li získat lepší znalost principu použití manifestu aplikace pro vztah důvěryhodnosti za běhu, zvažte následující příklad. Aplikace ClickOnce, která je určena pro .NET Framework 3.5 je vytvořena společností Microsoft. Manifest aplikace používá prvek <useManifestForTrust> a je podepsaný společností Microsoft. Adventure Works podepíše manifest nasazení pomocí certifikátu podepsaného svým držitelem. Klientské počítače Adventure Works jsou nakonfigurovány tak, aby důvěřovali libovolné aplikaci podepsané společností Microsoft.

Po tom co uživatel klikne na odkaz na manifest nasazení, ClickOnce nainstaluje aplikaci na počítači uživatele. Informace o certifikátu a nasazení určují jednoznačně aplikaci ClickOnce na klientském počítači. Pokud se uživatel pokusí znovu instalovat stejnou aplikaci z jiného umístění, ClickOnce pomocí této identity určí, že aplikace již existuje v klientském počítači.

Dále ClickOnce kontroluje certifikát technologie Authenticode, který je použit k podepsání manifestu aplikace, který určuje úroveň důvěry poskytnutou ClickOnce. Vzhledem k tomu, že společnost Adventure Works nakonfigurovala své klientské počítače, aby důvěřovaly jakékoli aplikaci podepsané společností Microsoft, je této aplikaci ClickOnce udělena úplná důvěryhodnost. Další informace naleznete v tématu Důvěryhodný přehled nasazení aplikace.

Vytváření zákaznických nasazení pro starší verze

Co se stane, pokud vývojář nasazuje aplikace ClickOnce zákazníkům, kteří používají starší verze rozhraní .NET Framework? V následujících částech je shrnuto několik doporučených řešení, společně s výhodami a nevýhodami každého.

Podepsání nasazení jménem zákazníka

Jedna možná strategie nasazení je, že vývojář vytvoří mechanismus podepisování nasazení jménem svým zákazníků pomocí soukromého klíče zákazníka. To vývojáři zabrání ve spravování soukromých klíčů nebo více balíčků nasazení. Stejné nasazení vývojář poskytuje pro každého zákazníka. Je na zákazníkovi, aby přizpůsobil nasazení pro jejich prostředí pomocí služby podepisování.

Jednou nevýhodou této metody jsou čas a výdaje, které jsou vyžadovány k jeho implementaci. Při takové službě je možné sestavit pomocí nástrojů sady .NET Framework SDK, přidá to další čas vývoje do cyklu životnosti produktu.

Jak bylo uvedeno výše v tomto tématu, jiná nevýhoda je, že každá zákaznická verze aplikace bude mít stejnou identitu, což by mohlo vést ke konfliktům. Je-li to znepokojivé, vývojář může změnit pole názvu, které se používá při generování manifestu nasazení k udělení jedinečného názvu každé aplikaci. To vytvoří oddělenou identitu pro každou verzi aplikace a eliminuje možné konflikty identit. Toto pole odpovídá argumentu -Name pro Mage.exe a poli Název na záložce Název v MageUI.exe.

Dejme tomu, že vývojář vytvořil aplikaci s názvem Application1. Namísto vytváření jednoho nasazení s polem název nastaveným na Application1, může vývojář vytvořit několik nasazení se zákaznickou variantou tohoto názvu, jako například Application1-CustomerA, Application1-CustomerB a tak dále.

Nasazení pomocí instalačního balíčku

Druhá možná strategie nasazení je generování instalačního projektu k provedení počátečního nasazení aplikace ClickOnce. Ten může být poskytnut v jednom z několika různých formátů: jako Instalační služba MSI nasazení, jako instalační spustitelný soubor (.exe) nebo jako soubor (.cab) spolu s dávkový skriptem.

Pomocí této techniky by měl vývojář poskytnout zákazníkovi nasazení, které obsahuje soubory aplikace, manifest aplikace a manifest nasazení, které slouží jako šablona. Zákazník by měl spustit instalační program, který by měl vyžádat adresu URL nasazení (umístění serveru nebo sdílené složky, ze kterých mohou uživatelé instalovat aplikaci ClickOnce), jakož i digitální certifikát. Instalační program aplikace může také zvolit dotaz na další možnosti konfigurace ClickOnce, jako je například kontrolní interval aktualizací. Jakmile jsou tyto informace shromážděny, instalační program by měl generovat skutečný manifest nasazení, podepsat jej a publikovat aplikaci ClickOnce do určeného umístění na serveru.

Existují tři způsoby, jak může zákazník podepsat manifest nasazení v této situaci:

  1. Zákazník může použít platný certifikát vystavený certifikační autoritou (CA).

  2. Jako variantu tohoto přístupu si může zákazník zvolit podepsání svého manifestu nasazení s certifikátem podepsaným svým držitelem. Nevýhodou je, že to způsobí, že aplikace zobrazí se slova "Neznámý vydavatel", když bude uživatel dotazován, zda se má instalovat aplikace. Výhoda však je, že to u menších zákazníků zabrání nutnosti trávit čas a peníze nutné pro vydání certifikátu certifikačním úřadem.

  3. Nakonec může vývojář zahrnout vlastní certifikát podepsaný svým držitelem v instalačním balíčku. To představuje potenciální problémy s identitou aplikace uvedené dříve v tomto tématu.

Nevýhodou k metodě instalace nasazení projektu jsou čas a výdaje potřebné k vytvoření vlastního nasazení aplikace.

Mít zákazníkem generovaný manifest nasazení

Třetí možná strategie nasazení je předat zákazníkovi pouze soubory aplikace a manifest aplikace. V tomto scénáři je za generování a podepsání manifestu nasazení pomocí rozhraní .NET Framework SDK zodpovědný zákazník.

Nevýhodou této metody je, že vyžaduje od zákazníka instalaci nástrojů sady .NET Framework SDK a aby měl vývojáře nebo správce systému, který je kvalifikován k jejich použití. Někteří zákazníci mohou požadovat řešení, které vyžaduje malé nebo žádné technické úsilí z jejich strany.

Viz také

Úkoly

Podrobné pokyny: Ruční nasazení aplikace ClickOnce

Podrobné pokyny: Ruční nasazení aplikace ClickOnce nevyžadující opětovné podepsání a zachovávající informace o výrobci

Koncepty

Nasazování aplikací ClickOnce pro testovací a výrobní servery bez opětovného podepisování