Smart Client Deployment

Dominick Baier Jörg Neumann

thinktecture
• Wir unterstützen Software-Entwickler und Architekten bei der Realisierung von .NET- und Web Services-Projekten • Dominick Baier
– Meine Spezialgebiete sind Sicherheit in verteilten Anwendungen, Identitäts-Management sowie die Windows/.NET SicherheitsAPIs und Technologien

• Jörg Neumann
– Meine Spezialgebiete sind Client-Technologien und Datenbanken • dominick.baier@thinktecture.com

• joerg.neumann@thinktecture.com
2

Desktop

Browser

MSI Xcopy

ClickOnce

WinForms XBAP Silverlight

Features Anforderungen

Verteilung Einfachheit

MSI

Vorteile I
• Installation von OS-nahen Komponenten
– GAC, NGEN-Images, Registry, Datenbank-Setup, COM Komponenten – Shell- oder MMC-Extensions – File Associations – .NET Framework

• Custom UI/Logic • Updates, Patches, Hotfixes…

Vorteile II
• Umfangreiche Tool-Unterstützung
– Visual Studio Setup Projekte – InstallShield, Wise, … – Wix

• Automatische Verteilung
– Active Directory Group Policies – Systems Management Server –…

Implikationen
• Erstellung und Verteilung des Setups erforderlich • Ausführung von MSIs erfordert administrative Berechtigungen

Client Profile
• Neu in .NET 3.5, Service Pack 1 • Schmales .NET-Framework • Zugeschnitten auf
– Das Betriebssystem (XP, Vista) / CPU – Den Anwendungstyp (Windows Forms/WPF) – Die verwendete .NET-Version (2.0/3.0/3.5)

Client Profile
• Schneller Download/Installation
– Reduktion um ca. 85% – Von 197 MB auf ca. 26 MB

• Integration in eigene MSIs möglich • Keine Internet-Verbindung nötig • Aber: Keine lokalisierten Ressourcen enthalten

Enthaltene Komponenten
• • • • • Common Language Runtime ClickOnce Windows Forms Windows Presentation Foundation Windows Communication Foundation

Bestandteile
• Client Profile Redistributable Packages
– Wird vom Endbenutzer installiert

• Client Profile Deployment Boot Strapper
– Konfiguration des Deployments

Xcopy Deployment

Vorteile
• Keine Zusatzarbeit für das Deployment-Verfahren
– Packaging, Verteilung etc… – Start von CD

• Zentrale Updates (theoretisch)

Implikationen
• Typischerweise Probleme mit .NET Sicherheitsrichtlinien
– File Shares sind nur begrenzt Vertrauenswürdig – Ab 3.5 SP1 „behoben“

• Anwendung muss entsprechend designed werden
– „self-contained“ – „multi-user“ – offline?

• Setzt installiertes .NET-Framework voraus

ClickOnce

ClickOnce
• Neues Deployment Verfahren ab .NET 2.0
– Kommt auch bei WinForms Browser Controls, XBAP und Office Anwendungen zum Einsatz – Installation erfolgt über einen Link (HTTP, FTP, File) – Anwendung kann lokal kopiert werden – Integration in Startmenü und Systemsteuerung

Das Deployment-Verfahren

Deployment Manifest (.application)

Application Manifest (.manifest)

Application Binaries (.deploy)

Sicherheits-Konzept
• Keine Admin-Rechte zur Installation benötigt
– Per-Benutzer Installation

• Partial- und Full-Trust Anwendungen unabhängig von der Herkunfts-Zone
– Verwendung von Code Signaturen

Sicherheits-Entscheidungen
Download und Ausführen des Manifests Sicherheits-Entscheidung bereits vorhanden? nein ja Ausführen oder nicht Ausführen

TrustManager aufrufen

Ausführen

ja

Trusted Publisher?

nein
Mehr Permissions als in Policy erlaubt benötigt? ja nein Ausführen

Ausführen Entscheidung speichern

ja

End-Benutzer Sicherheits-Entscheidung

nein Nicht Ausführen

TrustManager Konfiguration
• Via Registry Key
– HKLM\SOFTWARE\Microsoft\.NETFramework\ Security\TrustManager\PromptingLevel

• Pro Zone folgende Einstellungen
– Enabled – End-Benutzer entscheidet – AuthenticodeRequired – Signatur benötigt für Entscheidung – Disabled – End Benutzer kann nicht entscheiden / nur trusted Anwendungen dürfen Berechtigungen erhöhen

Default Settings
Windows Registry Editor Version 5.00
[HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\.NETFramework\Security] [HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\.NETFramework\Security\TrustManager] [HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\.NETFramework\Security\TrustManager\PromptingLevel]

"My Computer"="Enabled" "LocalIntranet"="Enabled" "Internet"="Enabled" "TrustedSites"="Enabled" "UntrustedSites"="Disabled"

22

Vorteile
• • • • • • Es muss keine Setup-Datei ausgeliefert werden Erfordert keine administrative Berechtigung Automatische Aktualisierung möglich Installation von Zusatzkomponenten möglich Offline-fähig „It just works“

Implikationen
• Keine Installation von OS-nahen Komponenten • Keine Custom UI/Logic • Standardmäßig keine Sicherheits-Einschränkungen
– Einführung erfordert Konfigurations-Änderungen und Software-Signatur Prozess

WinForms & XAML Browser Applications

XAML Browser Applications (XBAP)
• Ähnliches Konzept wie ClickOnce • Anwendung wird im Browser gehosted • Kann Browser-füllend oder in IFrame laufen

Das Deployment-Verfahren

Deployment Manifest (.xbap)

Application Manifest (.manifest)

Application Binaries (.deploy)

Architektur

Browser Presentation Host WPF Runtime

WPF Content

Besonderheit: Navigationsanwendungen
• • • • Navigation wie im Browser Desktop- oder Browser-App (XBAP) Page statt Window Navigationsleiste
– Historie wird automatisch aktualisiert

• Hyperlinks
– Zur Navigation

Security
• Ähnliches Konzept wie bei ClickOnce
– Allerdings keine Benutzer-Prompts – ..und damit auch keine Elevation

• Anwendungen läuft entweder in
– Partial Trust (Internet Zone) – Full Trust • Wenn Manifest mit Trusted Publisher Zertifikat signiert

Vor- und Nachteile
• Vorteile
– Leichte Integration in Intranet-Sites • SharePoint, MS CRM, Custom

• Nachteile
– Setzt installiertes .NET-Framework voraus – Läuft nur auf Windows-Rechnern (ab XP) – Sehr restriktives Security-Modell

Silverlight 2

Silverlight
• OS- und Browser-unabhängige Technologie
– Windows, MAC, Linux (in Arbeit) – IE6+7, Firefox, Safari, Opera

• Enthält ein Subset von WPF • Enthält ein Subset des .NET-Frameworks • Unterstützte .NET-Sprachen
– C#, VB

• Dynamic Language Runtime
– Java Script, Iron Ruby, Iron Python

• Version 2 ist momentan im Beta-Stadium

Vorteile
• Extrem schlank und trotzdem viele Features • (Teilweise) Schutz der bereits in XAML getätigten Investitionen • Große Reichweite

Implikationen
• Sicherheits-Einschränkungen
– Kein Zugriff auf lokale Resourcen – Eingeschränkter Netzwerk-Zugriff

• Sandbox ist fest und kann nicht angepasst werden • Für initiale ActiveX Installation werden AdminRechte benötigt

Feature-Vergleich
WPF XBAP WinForms

Silverlight

WPF Desktop

Feature/ Technology
Rich UI
Multi Platform Localization Komplexität Stabilität Browser Offline Performance Device Control Deployment Zukunftsfähigkeit

●● ●●● ●

●●● ●● ●●

●● ● ●●●

●● ● ●●

●● ● ●●

●●●
● ●● ●●● ●●● ●

●●
● ●●● ●●● ●●● ●●●


● ● ●● ●● ●●● ●●


●● ● ● ●●●

●●●
●●● ● ●●●

ASP.NET

{

In-depth support and consulting for software architects and developers

}

http://www.thinktecture.com/ dominick.baier@thinktecture.com
www.LeastPrivilege.com

joerg.neumann@thinktecture.com
www.HeadWriteLine.BlogSpot.com

37