IIS 7 fr ASP NET Entwickler Dominick Baier

  • Slides: 24
Download presentation
IIS 7 für ASP. NET Entwickler Dominick Baier Security Consultant thinktecture

IIS 7 für ASP. NET Entwickler Dominick Baier Security Consultant thinktecture

Dominick Baier und thinktecture Wir unterstützen Software-Entwickler und Architekten bei der Realisierung von. NET-

Dominick Baier und thinktecture Wir unterstützen Software-Entwickler und Architekten bei der Realisierung von. NET- und Web Services-Projekten Wir versuchen, am Puls der Zeit zu bleiben und gleichzeitig die heutigen Probleme mit heutiger Technologie zu lösen Meine Spezialgebiete sind Sicherheit in verteilten Anwendungen, Identitäts-Management sowie die Windows/. NET Sicherheits-APIs und Technologien http: //www. thinktecture. com/ http: //www. leastprivilege. com/ dominick. [email protected] com

Agenda IIS 6 und seine Probleme IIS 7 Architektur ASP. NET Integration Neue APIs

Agenda IIS 6 und seine Probleme IIS 7 Architektur ASP. NET Integration Neue APIs Konfiguration und Management Monitoring und Fehlerbehandlung Migration

IIS 6 und seine Probleme IIS 6 ist monolithisch Oftmals viele Features gar nicht

IIS 6 und seine Probleme IIS 6 ist monolithisch Oftmals viele Features gar nicht benötigt Schwierig zu erweitern ASP. NET als ISAPI Extension realisiert Eher „Aufsatz“ als Integration Getrenntes Konfigurations-System Nur in Windows Server enthalten IIS 5. 1 und Cassini nicht optimal zum entwickeln und testen

IIS 6 Architektur & ASP. NET Integration Authentication NTLM Basic Anon … Determine Extension

IIS 6 Architektur & ASP. NET Integration Authentication NTLM Basic Anon … Determine Extension CGI aspnet_isapi. dll Static File CLR ISAPI … Send Response Log Compress Http. Runtime Pipeline (system. web. dll)

Inside ASP. NET App. Domain: /LM/W 3 SVC/1/Root/My. App-1 -126702642672256757 Http. Request Http. Runtime

Inside ASP. NET App. Domain: /LM/W 3 SVC/1/Root/My. App-1 -126702642672256757 Http. Request Http. Runtime Http. Response Http. Context Http. Application Factory Http. Session. State Http. Application. State 1 Http. Application IHttp. Module 1 2 IHttp. Module 4 IHttp. Handler. Factory Module 2 Handler Factory 3 IHttp. Module n IHttp. Handler

Handler Verarbeiten Anfragen und Erzeugen den HTTP Response Implementieren IHttp. Handler Beispiele Web Forms

Handler Verarbeiten Anfragen und Erzeugen den HTTP Response Implementieren IHttp. Handler Beispiele Web Forms (. aspx) Web Services (. asmx) WCF Dienste (. svc) Tracing (. axd)

Module Werden implizit bei jedem Request aufgerufen Implementieren IHttp. Module Behandeln Ereignisse in der

Module Werden implizit bei jedem Request aufgerufen Implementieren IHttp. Module Behandeln Ereignisse in der HTTP Pipeline Beispiele Forms Authentication URL Authorization Role Manager Profile Session State

Pipeline Events Step/Event Detail Begin. Request Authenticate. Request Benutzer authentifizieren Authorize. Request Autorisierung Resolve.

Pipeline Events Step/Event Detail Begin. Request Authenticate. Request Benutzer authentifizieren Authorize. Request Autorisierung Resolve. Request. Cache Output cache laden Map. Request. Handler mappen Acquire. Request. State Session laden Pre. Request. Handler. Execute. Handler IHttp. Handler. Process. Request ausführen Post. Request. Handler. Execute Release. Request. State Session speichern Update. Request. Cache Output cache updaten End. Request

IIS 7 Architektur Authentication NTLM Basic Anon Authorization … Resolve. Cache. CGI … Determine

IIS 7 Architektur Authentication NTLM Basic Anon Authorization … Resolve. Cache. CGI … Determine Static File Handler Execute. Handler ISAPI … … Update. Cache Send Response Send. Response Log Compress - Server-Funktionalität in ca. 40 Module aufgeteilt - Basieren auf einem öffentlichen API - Können frei konfiguriert werden - Der sog. Web. Core ruft die Module in einer Pipeline auf - Web. Core selbst ist eine hostbare Komponente

IIS 7 ASP. NET Integration Basic Authentication Execute. Handler … • • ISAPI Eweiterung

IIS 7 ASP. NET Integration Basic Authentication Execute. Handler … • • ISAPI Eweiterung Integrated Mode . NET Modules / Handlers eweitern aspnet_isapi. dll die IIS Pipeline Authentication Forms Windows alle • Können … Requests ASPX verarbeiten Map • Static File ISAPI Update. Cache Send. Response Classic Mode Anon Authorization Resolve. Cache … • Handler Compress Log Trace … …

Konsequenzen IIS 7 hat zwei (fast) gleichwertige Programmierschnittstellen unmanaged (neuer API) managed (ASP. NET

Konsequenzen IIS 7 hat zwei (fast) gleichwertige Programmierschnittstellen unmanaged (neuer API) managed (ASP. NET module und handler) Dadurch ergeben sich leichte Veränderungen für ASP. NET Zugriff auf Header, Cookies und Server Variable Timing Veränderungen in der Pipeline Viele kleine Veränderugen http: //www. leastprivilege. com/Known. Differences. Between. IIS 7 Integrated. And. Classic. Mode. aspx

Transitions & Pre. Conditions Web. Core muss Objekte zwischen C++ and CLR marshalen Pre.

Transitions & Pre. Conditions Web. Core muss Objekte zwischen C++ and CLR marshalen Pre. Conditions erlauben Optimierungen unmanaged module 1 unmanaged module 2. . . Authentication mars hal Authorization managed module 1 managed module 2. . . … marshal Execute. Handler … managed/unmanaged Handler

Neues Konfigurations-System Configuration System metabase. xml application. Host. config machine. config metabase. xml root

Neues Konfigurations-System Configuration System metabase. xml application. Host. config machine. config metabase. xml root web. config metabase site web. config metabase app web. config metabase vdir web. config

Unified Configuration System <system. application. Host> Hosting Environment Konfiguration, z. B. app pools, sites,

Unified Configuration System <system. application. Host> Hosting Environment Konfiguration, z. B. app pools, sites, apps, vdirs <system. web> ASP. NET Konfiguration trust levels, profile, pages, session state… <system. web. Server> IIS 7 Konfiguration authentication, SSL, mime types, default document… Erweiterbar/Absicherbar

Microsoft. Web. Administration. Server. Manager Sites Applications Virtual. Directories Application. Pools Worker. Processes Application.

Microsoft. Web. Administration. Server. Manager Sites Applications Virtual. Directories Application. Pools Worker. Processes Application. Domains Application. Pool/Site Application/Vdir Defaults

Security Änderungen Managed Module werden jetzt viel früher ausgeführt kein Context. User vor Post.

Security Änderungen Managed Module werden jetzt viel früher ausgeführt kein Context. User vor Post. Authenticate. Request keine Impersonierung vor Post. Authenticate. Request Module erhalten auch anonyme Requests Neue Konten und Gruppen IUSR und IIS_IUSRS Haben jetzt well-known SIDs LOGON_USER wird von Forms Authentication gefüllt

Andere neue (vereinte) Dienste Output Caching Ähnlich dem ASP. NET Page Caching Für alle

Andere neue (vereinte) Dienste Output Caching Ähnlich dem ASP. NET Page Caching Für alle Content Typen Kernel Cache Unterstützung Native URL Autorisierung verbesserte Syntax URL Rewriting Kompression

Fehlerbehandlung und Logging Failed Request Event Buffering (FREB) Detailertes Request Tracing Iis. Trace. Listener

Fehlerbehandlung und Logging Failed Request Event Buffering (FREB) Detailertes Request Tracing Iis. Trace. Listener für System. Diagnostics Tracing Integration Iis. Trace. Web. Event Provider für Health Monitoring Framework Integration Page Tracing Integration Realtime Activity Monitor

Administrations Framework

Administrations Framework

Windows Process Activation Service (WAS) Neue System Komponente Aktiviert IIS 7 Anwendungen aufgrund von

Windows Process Activation Service (WAS) Neue System Komponente Aktiviert IIS 7 Anwendungen aufgrund von Netzwerk-Anfragen Unterstützt HTTP, TCP/IP, Named Pipes und MSMQ Wird von WCF verwendet Erlaubt das hosten von nicht-HTTP WCF Diensten in IIS 7

Fazit IIS 7 ist komplettes Redesign Managed Code ist ein First Class Citizen Bestehender

Fazit IIS 7 ist komplettes Redesign Managed Code ist ein First Class Citizen Bestehender Handler und Module Code kann übernommen werden Konfigurationssystem endlich brauchbar Gleicher IIS auf Client und Server Gut testen bei Migration!

Ressourcen Mein Blog http: //www. leastprivilege. com IIS 7 Überblick http: //www. iis. net/default.

Ressourcen Mein Blog http: //www. leastprivilege. com IIS 7 Überblick http: //www. iis. net/default. aspx? tabid=7 IIS 6 -> 7 Breaking Changes http: //tinyurl. com/37 qyqc IIS 7 Referenz http: //tinyurl. com/2 lb 4 en

© 2007 Microsoft Corporation. All rights reserved. Microsoft, Windows Vista and other product names

© 2007 Microsoft Corporation. All rights reserved. Microsoft, Windows Vista and other product names are or may be registered trademarks and/or trademarks in the U. S. and/or other countries. The information herein is for informational purposes only and represents the current view of Microsoft Corporation as of the date of this presentation. Because Microsoft must respond to changing market conditions, it should not be interpreted to be a commitment on the part of Microsoft, and Microsoft cannot guarantee the accuracy of any information provided after the date of this presentation. MICROSOFT MAKES NO WARRANTIES, EXPRESS, IMPLIED OR STATUTORY, AS TO THE INFORMATION IN THIS PRESENTATION.