Sono appena passato da IIS6 su Win2003 a IIS8 su Win2012 per ospitare applicazioni ASP.NET.
All'interno di una particolare cartella nella mia applicazione ho bisogno di creare ed eliminare file. Dopo aver copiato i file sul nuovo server, ho continuato a vedere i seguenti errori quando ho cercato di eliminare i file:
L'accesso al percorso 'D:\WebSites\myapp.co.uk\companydata\filename.pdf' è negato.
Quando controllo IIS vedo che l'applicazione è in esecuzione sotto l'account DefaultAppPool, tuttavia, non ho mai impostato i permessi di Windows su questa cartella per includere IIS AppPool\DefaultAppPool
Invece, per fermare i clienti urlanti ho concesso le seguenti autorizzazioni sulla cartella:
IUSR
IIS_IUSRS
Questo sembra aver funzionato, ma sono preoccupato che siano stati impostati troppi privilegi. Ho letto informazioni contrastanti online sul fatto che IUSR sia effettivamente necessario. Qualcuno può chiarire quali utenti/permessi sarebbero sufficienti per creare ed eliminare documenti in questa cartella? Inoltre, IUSR fa parte del gruppo IIS_IUSRS?
Si prega di vedere la mia risposta qui sotto. Ho dovuto farlo purtroppo perché alcuni suggerimenti recenti non erano ben pensati, o anche sicuri (IMO).
IUSR fa parte del gruppo IIS_IUSER, quindi credo che tu possa rimuovere i permessi per IUSR senza preoccuparti. Ulteriori letture
Tuttavia, un problema è sorto nel tempo quando sempre più servizi di sistema di Windows hanno iniziato a funzionare come NETWORKSERVICE. Questo perché i servizi in esecuzione come NETWORKSERVICE possono manomettere altri servizi che girano sotto la stessa identità. Poiché i processi di lavoro di IIS eseguono codice di terze parti per impostazione predefinita (codice Classic ASP, ASP.NET, PHP), era ora di isolare i processi di lavoro di IIS da altri servizi di sistema Windows ed eseguire i processi di lavoro di IIS sotto identità uniche. Il sistema operativo Windows fornisce una caratteristica chiamata "Virtual Accounts" che permette a IIS di creare identità uniche per ciascuno dei suoi Application Pools. DefaultAppPool è il pool di default che viene assegnato a tutti i pool di applicazioni creati.
Per renderlo più sicuro potete cambiare l'identità di IIS DefaultAppPool in ApplicationPoolIdentity.
Per quanto riguarda il permesso, Create e Delete riassume tutti i diritti che possono essere dati. Quindi, qualsiasi cosa abbiate assegnato al gruppo IIS_USERS è quello che richiederanno. Niente di più, niente di meno.
Spero che questo aiuti.
@EvilDr Puoi creare un account IUSR[identificatore] nel tuo ambiente AD e lasciare che il particolare pool di applicazioni venga eseguito sotto quell'account IUSR[identificatore]:
"Application pool" > "Impostazioni avanzate" > "Identità" > "Account personalizzato"
Imposta il tuo sito web su "Applicaton user (pass-through authentication)" e non "Specific user", nelle Impostazioni avanzate.
Ora dai a quel IUSR_[identificatore] i permessi NTFS appropriati su file e cartelle, per esempio: modifica su companydata.
Userei l'utente specifico (e NON l'utente dell'applicazione). Poi abiliterò l'impersonificazione nell'applicazione. Una volta fatto ciò, qualunque sia l'account impostato come utente specifico, quelle credenziali saranno utilizzate per accedere alle risorse locali su quel server (non per le risorse esterne).
L'impostazione dell'utente specifico è specificamente intesa per l'accesso alle risorse locali.