You are on page 1of 37

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 Sicherheits-
APIs 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 Verteilung
Anforderungen 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 Manifest


(.application) (.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 Sicherheits-Entscheidung ja Ausführen oder
Ausführen des Manifests bereits vorhanden? nicht Ausführen
nein

TrustManager aufrufen

ja Trusted Publisher?
Ausführen

nein

Mehr Permissions als in nein


Ausführen
Policy erlaubt benötigt?

ja
Ausführen ja End-Benutzer nein
Entscheidung speichern Sicherheits-Entscheidung 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 Application Manifest


(.xbap) (.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 Admin-
Rechte benötigt
Feature-Vergleich

WPF XBAP
WinForms

Silverlight
Desktop

ASP.NET
Feature/

WPF
Technology

Rich UI ●● ●●● ●● ●● ●
Multi Platform - - - ● ●●
Localization ●●● ●● ● ●
Komplexität ● ●● ●●● ●● ●●
Stabilität ●●● ●● ● ● ●●●
Browser - - ● ●● ●●●
Offline ● ● ● - -
Performance ●● ●●● ●● ● ●
Device Control ●●● ●●● ●● - -
Deployment ●●● ●●● ●●● ● -
Zukunftsfähigkeit ● ●●● ●● ●●● ●●●
{ 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