Prozessisolation

Die HTTP-Server-API, Version 2.0, bietet die Möglichkeit, einen sichereren und zuverlässigeren Dienst zu erstellen, indem Workerprozesse isoliert werden, die Wartungsanforderungen in der Anforderungswarteschlange sind. Die Anforderungswarteschlange wird von einem Controller oder Erstellerprozess erstellt und verwaltet, der den Zugriff darauf streng kontrolliert. Der Controllerprozess startet einen oder mehrere separate Workerprozesse, die E/A für die Anforderungswarteschlange ausführen. Der Controllerprozess wird mit Administratorrechten ausgeführt und konfiguriert die Anforderungswarteschlange, während der Worker mit niedrigeren Berechtigungen Zugriffs- und Dienstanforderungen aus der Anforderungswarteschlange verarbeitet. Diese Architektur unterstützt die Richtlinie von Anwendungen, die unter "geringsten Rechten" ausgeführt werden, und verringert die Gefahr von Sicherheitsrisiken, die durch Code von Drittanbietern verursacht werden, der möglicherweise in Arbeitsprozessen ausgeführt wird.

Der Zugriff auf die Anforderungswarteschlange wird gewährt, wenn der Controllerprozess die Anforderungswarteschlange mit einem Namen und einer Access Control List (ACL) erstellt. Webanwendungen, die in der ACL enthalten sind, können eine vorhandene Anforderungswarteschlange anhand des Namens öffnen. Der Erstellerprozess kann auch ein Arbeitsprozess in der Anforderungswarteschlange sein. Weitere Informationen finden Sie im Thema Warteschlange für benannte Anforderungen . Das folgende Diagramm zeigt die Architektur einer typischen HTTP-Anwendung, die mit dem Arbeitsprozessmodell ausgeführt wird:

Diagramm, das die Architektur einer H T TP-Anwendung unter Verwendung des Arbeitsprozessmodells zeigt.

Einzelne Arbeitsprozesse innerhalb der Anwendung sind von anderen Arbeitsprozessen isoliert, und die Integrität der einzelnen Arbeitsprozesse kann vom Controllerprozess überwacht werden. Der Controllerprozess ist von den Workerprozessen isoliert. Die Komponenten der HTTP-Architektur werden unten beschrieben:

  • Ersteller- oder Controllerprozess: Der Controllerprozess kann mit oder ohne Administratorrechte ausgeführt werden, um die Integrität zu überwachen und den Dienst zu konfigurieren. Der Controllerprozess erstellt in der Regel eine einzelne Serversitzung für den Dienst und definiert die URL-Gruppen unter der Serversitzung. Die URL-Gruppe, der eine bestimmte URL zugeordnet ist, bestimmt, welche Anforderungswarteschlange den Namespace bereitstellt, der durch die jeweilige URL gekennzeichnet ist. Der Controllerprozess erstellt auch die Anforderungswarteschlange und startet die Workerprozesse, die auf die Anforderungswarteschlange zugreifen können.
  • Arbeitsprozess: Die Workerprozesse, die vom Controllerprozess gestartet werden, führen E/A für die Anforderungswarteschlange aus, die den von ihnen verwalteten URLs zugeordnet ist. Der Webanwendung wird beim Erstellen der Anforderungswarteschlange vom Controllerprozess in der ACL Zugriff auf die Anforderungswarteschlange gewährt. Sofern die Webanwendung nicht auch der Erstellerprozess ist, wird der Dienst weder verwaltet noch die Anforderungswarteschlange konfiguriert. Der Controllerprozess kommuniziert den Namen der Anforderungswarteschlange an den Arbeitsprozess, und der Arbeitsprozess öffnet die Anforderungswarteschlange anhand des Namens. Workerprozesse können Webanwendungen von Drittanbietern laden, ohne sicherheitsrelevante Sicherheitsrisiken in anderen Teilen der Anwendung einzuführen.
  • Anforderungswarteschlange: Die Anforderungswarteschlange wird vom Controllerprozess erstellt und konfiguriert. Der Controller gibt die Prozesse an, die beim Erstellen der Anforderungswarteschlange auf die Anforderungswarteschlange in der ACL zugreifen dürfen.
  • Serversitzung: Der Controllerprozess erstellt und konfiguriert in der Regel eine einzelne Serversitzung für die Anwendung. Die Serversitzung verwaltet die Konfigurationseigenschaften für die gesamte Anwendung. URL-Gruppen werden unter der Serversitzung vom Controllerprozess erstellt.
  • URL-Gruppe: Der Controllerprozess erstellt die URL-Gruppen unter der Serversitzung und konfiguriert die URL-Gruppe unabhängig von der Serversitzung. URLs werden der Gruppe vom Controllerprozess hinzugefügt. Anforderungen werden an die Anforderungswarteschlange weitergeleitet, der die URL-Gruppe zugeordnet ist.