IIS_IUSRS und IUSR-Berechtigungen in IIS8

Ich habe gerade weg von IIS6 auf Win2003 zu IIS8 auf Win2012 für das Hosting von ASP.NET-Anwendungen.

Innerhalb eines bestimmten Ordners in meiner Anwendung muss ich Dateien erstellen & löschen. Nach dem Kopieren der Dateien auf den neuen Server, sah ich immer die folgenden Fehler, wenn ich versuchte, Dateien zu löschen:

Der Zugriff auf den Pfad 'D:\WebSites\myapp.co.uk\companydata\filename.pdf' wird verweigert.

Wenn ich IIS überprüfe, sehe ich, dass die Anwendung unter dem DefaultAppPool-Konto ausgeführt wird, allerdings habe ich die Windows-Berechtigungen für diesen Ordner nie so eingerichtet, dass sie IIS AppPool\DefaultAppPool umfassen.

Um schreiende Kunden zu stoppen, habe ich stattdessen die folgenden Berechtigungen für den Ordner vergeben:

IUSR

  • Lesen & Ausführen
  • Ordnerinhalt auflisten
  • Lesen
  • Schreiben

IIS_IUSRS

  • Ändern
  • Lesen & Ausführen
  • Ordnerinhalt auflisten
  • Lesen
  • Schreiben

Das scheint zu funktionieren, aber ich habe Bedenken, dass zu viele Berechtigungen gesetzt wurden. Ich habe im Internet widersprüchliche Informationen darüber gelesen, ob IUSR hier überhaupt benötigt wird. Kann mir jemand sagen, welche Benutzer/Berechtigungen für das Erstellen und Löschen von Dokumenten in diesem Ordner ausreichen würden? Ist IUSR außerdem Teil der Gruppe IIS_IUSRS?

Update & Lösung

Bitte beachten Sie meine Antwort unten. Ich mußte dies leider tun, da einige der letzten Vorschläge nicht gut durchdacht oder sogar sicher waren (IMO).

IUSR ist Teil der Gruppe IIS_IUSER. Sie können also die Berechtigungen für IUSR bedenkenlos entfernen. Weitere Lektüre

Im Laufe der Zeit trat jedoch ein Problem auf, als immer mehr Windows-Systemdienste als NETWORKSERVICE ausgeführt wurden. Dies liegt daran, dass Dienste, die als NETWORKSERVICE laufen, andere Dienste, die unter der gleichen Identität laufen, beeinflussen können. Da IIS-Arbeitsprozesse standardmäßig Code von Drittanbietern ausführen (klassischer ASP-, ASP.NET-, PHP-Code), war es an der Zeit, IIS-Arbeitsprozesse von anderen Windows-Systemdiensten zu isolieren und IIS-Arbeitsprozesse unter eindeutigen Identitäten auszuführen. Das Windows-Betriebssystem bietet eine Funktion namens "Virtuelle Konten", die es IIS ermöglicht, eindeutige Identitäten für jeden seiner Anwendungspools zu erstellen. DefaultAppPool ist der Standardpool, der allen von Ihnen erstellten Anwendungspools zugewiesen wird.

Um die Sicherheit zu erhöhen, können Sie die IIS DefaultAppPool-Identität in ApplicationPoolIdentity ändern.

Was die Berechtigung betrifft, so werden unter Erstellen und Löschen alle Rechte zusammengefasst, die vergeben werden können. Was immer Sie also der Gruppe IIS_USERS zugewiesen haben, ist das, was sie benötigen. Nicht mehr und nicht weniger.

Ich hoffe, das hilft.

Kommentare (6)

@EvilDr Sie können ein IUSR[Bezeichner]-Konto in Ihrer AD-Umgebung erstellen und den jeweiligen Anwendungspool unter diesem IUSR[Bezeichner]-Konto laufen lassen:

"Anwendungspool" > "Erweiterte Einstellungen" > "Identität" > "Benutzerdefiniertes Konto"

Stellen Sie Ihre Website in den Erweiterten Einstellungen auf "Anwendungsbenutzer (Passthrough-Authentifizierung)" und nicht auf "Eigener Benutzer".

Geben Sie nun diesem IUSR_[identifier] die entsprechenden NTFS-Berechtigungen für Dateien und Ordner, zum Beispiel: modify on companydata.

Kommentare (3)

Ich würde einen bestimmten Benutzer (und NICHT den Anwendungsbenutzer) verwenden. Dann werde ich die Impersonation in der Anwendung aktivieren. Sobald Sie das tun, egal welches Konto als spezifischer Benutzer eingestellt ist, werden diese Anmeldeinformationen für den Zugriff auf lokale Ressourcen auf diesem Server verwendet (nicht für externe Ressourcen).

Die spezifische Benutzereinstellung ist speziell für den Zugriff auf lokale Ressourcen gedacht.

Kommentare (0)