Montag, 7. Mai 2012

IIS Directory Security, und wo kommt die ApplicationPoolIdentity her?

Wenn man manuell ein Verzeichnis anlegt, um dieses später als Root Verzeichnis einer Website im IIS zu nutzen, gibt es ein paar "rechtliche" Dinge zu beachten. Wenn man die Site über den IIS Manager hinzufügt, und aus dem Dialog heraus einen neuen Ordner für die Site erstllen lässt, hat man diese Rechteprobleme üblicherweise nicht, aber auch das ist nicht garantiert.

Nachdem man also das Verzeichnis angelegt hat, sind die Rechte erstmal ziemlich spärlich gesät:


So wird es nach Einrichtung der Site im IIS, beim Aufruf erstmal einen 500er geben, da z.B. die web.config überhaupt nicht gelesen werden kann. Es ist notwendig, ApplicationPool die entsprechenden Rechte zu geben. Der User unter dem das ApplicationPool läuft, ist standardmäßig die ApplicationPoolIdentity. Diese wird man aber vergeblich im Explorer Dialog beim Hinzufügen der Rechte suchen. Es handelt sich um einen "dynamischen" User, dessen Namen man kennen muss. Im Falle des "ASP.NET v4.0" AppPools, heißt der entsprechende User "IIS AppPool\ASP.NET v4.0":


Der Name der AppPoolIdentity lässt sich in der Konsole über
%systemroot%\System32\inetsrv>appcmd.exe list app /site.name:"your.site.name"
abfragen. Auch im IIS Manager kann man sich den Namen anzeigen lassen. Letztendlich sind dann noch die Gruppen IUSR und IIS_IUSRS wichtig, damit der Zugriff auf die Site korrekt funktioniert. Diese kann man bequem über den Explorer Dialog hinzufügen.




Eine sehr gute Beschreibung der verschiedenen relevanten Benutzer und Gruppen findet sich hier: http://stackoverflow.com/questions/5729264/what-are-all-the-user-accounts-for-iis-asp-net-and-how-do-they-differ Dort ist auch der nötige Befehl zum Hinzufügen der Rechte für die ApplicationPoolIdentity nochmal beschrieben.

Keine Kommentare:

Kommentar veröffentlichen

Hinweis: Nur ein Mitglied dieses Blogs kann Kommentare posten.