Aktualisiert: 05. Mai 2004
Auf dieser Seite
Zielsetzung
Betrifft
Verwendung dieses Moduls
Zusammenfassung
Benötigte Kenntnisse
Erstellen eines neuen lokalen Kontos
Zuweisen von minimalen Rechten
Zuweisen von NTFS-Berechtigungen
Konfigurieren von ASP.NET für die Ausführung unter Verwendung des neuen Kontos
Zielsetzung
Themenbereiche:
-
Erstellen eines Kontos mit minimalen Rechten, das über die erforderlichen Berechtigungen verfügt, um ASP.NET-Anwendungen richtig ausführen zu können
-
Konfigurieren von ASP.NET für die Ausführung eines benutzerdefinierten Kontos mit minimalen Rechten
Betrifft
Die Informationen in diesem Modul gelten für folgende Produkte und Technologien:
-
Microsoft® Windows® XP oder Windows 2000 Server (mit Service Pack 3) und höhere Betriebssysteme
-
Microsoft .NET Framework Version 1.0 (mit Service Pack 2) und höhere Versionen
-
Internetinformationsdienste (IIS) 5.0 oder 6.0 (nur bei Verwendung von IISS 5.0-Isolationsmodus)
Verwendung dieses Moduls
Empfehlungen für eine erfolgreiche Arbeit mit diesem Modul:
-
Sie müssen Erfahrung in der Entwicklung von ASP.NET-Webanwendungen haben und mit dem Zweck und der Struktur der Datei machine.config vertraut sein.
-
Sie müssen Erfahrung in der Erstellung und Verwaltung von eigenständigen oder domänenbasierten Windows-Benutzerkonten mit Windows-Verwaltungsprogrammen haben.
-
Lesen Sie Modul 8, "ASP.NET-Sicherheit". Dort erfahren Sie weitere Details über die Funktionsweise von ASP.NET-Sicherheit, über die Auswirkungen der Identität des ASP.NET-Workerprozesses auf die Berechtigungen einer ausführenden Anwendung und die Verwendung des Identitätswechsels, um einem Benutzer Ihrer Webanwendung einfach der entsprechenden Berechtigungsstufe zuzuteilen.
Zusammenfassung
Standardmäßig wird jeder ASP.NET-Workerprozess im Kontext eines Kontos mit minimalen Rechten ausgeführt, das die Bezeichnung ASPNET trägt. Wenn Ihre ASP.NET-Anwendung auf einem domänenbasierten Server bereitgestellt wird oder auf Ressourcen auf Remoteservern zugreifen muss, können Sie die Verwaltung vereinfachen, indem Sie ASP.NET für die Ausführung im Kontext eines anderen Kontos definieren.
In diesem Modul wird beschrieben, wie Sie ASP.NET für die Ausführung im Kontext eines benutzerdefinierten lokalen Kontos oder Domänenkontos ausführen und welche Berechtigungen Sie diesem Konto zuweisen müssen, damit es richtig funktioniert.
Benötigte Kenntnisse
Bevor Sie mit diesem Modul beginnen, sollten Sie sich über folgende Punkte im Klaren sein:
Identität des ASP.NET-Workerprozesses
Das zum Zeitpunkt der Installation angelegte Standardkonto zum Ausführen von ASP.NET ist ein lokales Konto mit minimalen Rechten und wird in machine.config wie folgt definiert:
<processModel enable="true" userName="Computer" password="AutoGenerate" />
Dieses Konto wird im Container Lokale Benutzer und Gruppen als "ASPNET" aufgeführt und verfügt über ein sicheres Kennwort, das in der Local Security Authority (LSA) gesichert ist.
Wenn Sie über die ASP.NET-Prozessidentität auf Netzwerkressourcen wie eine Datenbank zugreifen müssen, haben Sie die folgenden Möglichkeiten:
-
Sie können ein Domänenkonto verwenden.
-
Sie können "gespiegelte" lokale Konten verwenden (d. h. Konten mit übereinstimmenden Benutzernamen und Kennwörtern auf zwei Computern). Diese Vorgehensweise ist zwingend, wenn sich die Computer in unterschiedlichen Domänen ohne Vertrauensstellung befinden, oder wenn sich zwischen den Computern eine Firewall befindet und Sie die für die NTLM- oder Kerberos-Authentifizierung benötigten Anschlüsse nicht öffnen können.
Die einfachste Vorgehensweise besteht darin, das Kennwort des ASPNET-Kontos in einen dem Webserver bekannten Wert zu ändern und dann ein Konto mit Namen ASPNET mit dem gleichen Kennwort auf dem Zielcomputer zu erstellen. Auf dem Webserver müssen Sie zuerst das Kennwort des ASPNET-Kontos im Container Lokale Benutzer und Gruppen ändern und dann die Anmeldeinformationen im Element <processModel< in machine.config austauschen. Sie sollten Kennwörter in machine.config nicht im Klartext speichern, sondern stattdessen mithilfe von aspnet_setreg.exe verschlüsselte Kennwörter in der Registrierung speichern. Weitere Informationen finden Sie in Modul 8, "ASP.NET-Sicherheit".
<processModel enable="true"
userName="registry:HKLM\SOFTWARE\YourSecureApp\processModel\
ASPNET_SETREG,userName"
password="registry:HKLM\SOFTWARE\YourSecureApp\processModel\
ASPNET_SETREG,password" . . ./>
Mit den in diesem Modul erläuterten Schritten können Sie ein lokales Konto mit minimalen Rechten erstellen.
Identitätswechsel zu festen Identitäten
Mithilfe der folgenden Einstellung in web.config können Sie feste Identitäten für bestimmte virtuelle Verzeichnisse festlegen. Verwenden Sie aspnet_setreg.exe, um verschlüsselte Anmeldeinformationen in der Registrierung zu speichern.
<identity impersonate="true"
userName="registry:HKLM\SOFTWARE\YourSecureApp\
identity\ASPNET_SETREG,userName"
password="registry:HKLM\SOFTWARE\YourSecureApp\
identity\ASPNET_SETREG,password" />
Dieses Verfahren wird in der Regel verwendet, wenn Sie auf dem gleichen Webserver mehrere Websites verwalten, die unter unterschiedlichen Identitäten ausgeführt werden müssen, also beispielsweise beim Anwendungshosting.
In diesem Modul wird gezeigt, wie ein lokales Konto mit minimalen Rechten angelegt wird. Wenn es in erster Linie um die Verwaltung geht, können Sie auch ein eingeschränktes Domänenkonto mit minimalen Rechten und einem sicheren Kennwort verwenden.
Bei den Überlegungen bezüglich des Kontos zum Ausführen von ASP.NET sollten Sie Folgendes berücksichtigen:
-
ASP.NET führt nicht standardmäßig einen Identitätswechsel durch. Demzufolge wird bei jedem Ressourcenzugriff seitens der Webanwendung die ASP.NET-Prozessidentität verwendet. In diesem Fall müssen Windows-Ressourcen über eine Access Control List (ACL oder Zugriffssteuerungsliste) verfügen, die den Zugriff auf das ASP.NET-Prozesskonto ermöglicht.
-
Wenn Sie den Identitätswechsel aktivieren, greift die Anwendung über den Sicherheitskontext des ursprünglichen Benutzers oder des anonymen Internetbenutzerkontos (standardmäßig IUSR_MACHINE) auf Ressourcen zu, wenn IIS für die anonyme Authentifizierung konfiguriert ist. In diesem Fall müssen die Ressourcen über ACLs basierend auf der Identität des ursprünglichen Benutzers (oder IUSR_MACHINE) verfügen.
-
Halten Sie sich bei der Erstellung eines benutzerdefinierten Kontos immer an das Prinzip der minimalen Rechte, d. h. gewähren Sie jeweils nur das Minimum der erforderlichen Rechte und Berechtigungen.
-
Vermeiden Sie es, ASP.NET unter Verwendung des Kontos SYSTEM auszuführen.
-
Sehen Sie davon ab, dem Konto das Recht "Als Teil des Betriebssystems handeln" zu gewähren.
Erstellen eines neuen lokalen Kontos
Mit diesem Verfahren wird ein neues lokales Konto erstellt. Das neue Konto wird standardmäßig der lokalen Gruppe Benutzer hinzugefügt.
Zuweisen von minimalen Rechten
Mit diesem Verfahren werden die minimalen Rechte zugewiesen, die zum Ausführen von ASP.NET erforderlich sind.
Zuweisen von NTFS-Berechtigungen
Mit diesem Verfahren werden dem benutzerdefinierten ASP.NET-Konto die erforderlichen NTFS-Berechtigungen im lokalen Dateisystem gewährt.
Hinweis: Die Schritte in diesem Verfahren beziehen sich auf das Dateisystem auf dem Webserver (und nicht auf einem Remotecomputer, auf dem Sie evtl. das Konto zum Zwecke der Netzwerkauthentifizierung duplizieren).
Konfigurieren von ASP.NET für die Ausführung unter Verwendung des neuen Kontos
Mit diesem Verfahren wird machine.config bearbeitet und ASP.NET so konfiguriert, dass es mit dem neuen Konto ausgeführt werden kann.