Abstrakt: |
IIS und ASP.NET vor dem Traualtar
Nachdem der Internet Information Server (IIS) in den letzten Jahren vornehmlich durch Probleme auf sich aufmerksam machte, soll die kommenden Version 7.0 Abhilfe schaffen: Neben der weiter verbesserten Sicherheit soll auch das Zusammenwachsen mit der Entwicklungsplattform ASP.NET vorangetrieben werden. Hier ein erster Blick auf dem im Jahr 2006 erscheinenden IIS 7.0.
Der modularer Aufbau des IIS Version 7.0 soll es Webhostern erlauben, für jede einzelne Websites dedizierte Modulsätze zu erstellen. (Quelle: Microsoft)
Die aktuelle Version des Redmonder Webservers trägt die Bezeichnung IIS 6.0 und ist mit Windows Server 2003 erschienen. Während dieser IIS 6.0 bereits die Möglichkeit bot, einzelne Funktionen zu deaktivieren, ist der kommende IIS 7.0 so stark aus einzelnen unabhängigen Softwarekomponenten zusammengebaut, dass nur die wirklich benötigten Funktionen installiert werden müssen. Um einen kleinen Webserverkern herum stellt er mehr als 30 Module für Netzwerkprotokolle, Protokolldateierstellung, Konfiguration, Authentifizierungsverfahren und Diagnose (siehe auch Bild auf dieser Seite) zur Verfügung. Die Modularisierung erlaubt es Webhostern, für jede einzelne Website dedizierte Modulsätze zu erstellen. Aus sicherheitstechnischer Betrachtung reduziert dies die Angriffsfläche (Attack Surface) und erhöht die Sicherheit des Webservers.
In der Version 7 legt Microsoft außerdem Wert auf einfachere Konfiguration und erweiterte Programmierbarkeit. Das .NET-basierte serverseitige Webanwendungs-Framework ASP.NET ist bislang nur ein Add-On für IIS und integriert sich selbst als ISAPI-Erweiterung in den Webserver. ASP.NET nutzt wie alle .NET-basierten Anwendungen XML-basierte Konfigurationsdateien mit Namen „web.config“, die in jedem Unterverzeichnis einer Webanwendung existieren können. Untergeordnete Konfigurationsdateien können dabei übergeordnete Einstellung überschreiben. Die Konfigurationsdatenbank des IIS 6.0 (alias Metabase) basiert zwar auch auf XML, gehorcht jedoch nicht dem Konfigurationsschema des .NET Framework, sodass die Konfiguration von IIS und ASP.NET bislang in verschiedenen XML-Dateien erfolgte. Welche Einstellungen auf eine Webanwendung wirken, ergibt sich somit aus dem Zusammenwirken der unterschiedlichen Konfigurationsdateien.
Mit IIS 7.0 wird der Webserver nun das .NET-basierte Konfigurationssystem übernehmen. Das bedeutet, dass alle Einstellungen einer Webanwendung direkt in den „web.config“-Dateien vorgenommen werden können. Auch die bei ASP.NET übliche Hierarchiebildung wird dabei übernommen. Die web.config“-Dateien können wie einfache Textdateien übertragen werden – also auch per FTP. Administratorrechte sind im Regelfall für die Konfiguration einzelner Sites nicht mehr erforderlich. In Hosting-Szenarien vereinfacht sich dadurch die Konfiguration erheblich. Weder die „Frontpage Server Extensions“ noch ein RPC-Zugang zu dem Webserver-Dienst sind damit in Zukunft erforderlich. Die Überschreibbarkeit von „web.config“-Einstellung kann ebenfalls verhindert werden, wodurch Webhosting-Anbieter festlegen können, welche Einstellungen man den Kunden zur Verfügung stellen will und welche man ihnen nicht gestatten möchte .
Dabei sollen auch Konfigurationsdaten für die neue Webservice-Architektur Indigo in den „web.config-Dateien“ zu finden sein. Zur Erstellung der Konfigurationsdateien hat Microsoft ein neues Werkzeug entwickelt, das die Redmonder „aufgabenbasiert“ rühmen und die Administration stark vereinfachen soll. War es bisher notwendig, die verschiedenen Dialoge für die jeweiligen Eigenschaften manuell zu öffnen, so soll das neue Werkzeug den Administrator nun mit Hilfe von Assistenten schneller zum Ziel führen. Durch Filter- und Gruppierungsfunktionen soll es zudem einfacher werden, mehrere Tausende von Websites in einer IIS-Instanz zu verwalten.
Neben der „Hochzeit“ auf der Konfigurationsebene finden IIS und ASP.NET auch auf der Ebene der Verarbeitung eines Seitenabrufs (Request Pipeline) zueinander. Bisher wirkten alle Einstellung von ASP.NET nur für Dateien der Typen .aspx, .ascx, .asmx, .asax, .axd und .ashx, da ASP.NET als eine ISAPI-Erweiterung des IIS nur auf diese Dateitypen registriert war. Eine einheitliche Verarbeitungspipeline ermöglicht es nun, dass ASP.NET auch auf andere Dateitypen einschließlich statischer Inhalte (.htm, .gif, etc.) wirken kann. Somit kann das Sicherheitssystem von ASP.NET auch für statische Webseiten und Grafiken wirken.
Für die Erweiterung des IIS sind die schwer in C++ zu entwickelnden ISAPI-Erweiterungen nicht mehr notwendig; IIS 7.0 erlaubt die Nutzung der aus ASP.NET bekannten Programmiermodelle „Managed ASP.NET Handler“ und „Managed ASP.NET Modul“, wobei eine beliebige .NET-Sprache zum Einsatz kommen kann. Dadurch wird es beispielsweise möglich, die Protokollierung oder die vom Webserver generierte Auflistung eines Verzeichnisses den eigenen Bedürfnissen anzupassen. Microsoft will damit den Webserver auch für Erweiterungen von Drittanbietern öffnen. Weitere Verbesserung verspricht Microsoft auch für die Diagnose: Durch Werkzeuge und Programmierschnittstellen sollen Entwickler und Administratoren ermitteln können, welche Sites und Seiten den Server stärker als andere belasten. Durch eine Offenlegung der Verarbeitungspipeline sollen Betreiber dann auch Probleme bei den Rechten leichter erkennen können.
Die Entwicklung des IIS 7.0 ist Teil des Longhorn-Projekts und wird seit Ende 2003 von Scott Guthrie, dem Erfindern von ASP.NET, geleitet. Die erste IIS 7.0-Variante wird im Rahmen des Longhorn Clients Mitte 2006 erscheinen, wobei die große Kluft zwischen Client und Server (etwa mit dem IIS 5.1 auf Windows XP und dem IIS 6.0 auf Windows Server 2003 zu vergleichen) deutlich verringert werden soll. Es ist allerdings noch nicht bestätigt, dass es den IIS 7.0 auch als Add-on für Windows Server 2003 geben wird. (fms)
von Dr. Holger Schwichtenberg |