Un collega mi ha chiesto oggi come configurare IIS 7.5 per utilizzare l'autenticazione integrata di Windows con rappresentazione per un sito Web intranet semplice con contenuto statico limitato a un gruppo specifico in Active Directory (ad es. "Amministratori").Configurare IIS Autenticazione Windows per restituire HTTP 403 anziché HTTP 401 per autorizzazione negata con un utente autenticato
Si scopre che IIS invia una risposta HTTP 401 quando l'utente autenticato non dispone dell'autorizzazione alla risorsa richiesta. L'autorizzazione negata potrebbe essere il risultato di un file ACL NTFS o di un ACL system.webServer/security/authorization
definito nella configurazione di IIS.
Tutti i principali browser sembrano interpretare questo 401 per indicare che l'utente finale ha fornito credenziali di nome utente/password di Windows non valide, e quindi richiede all'utente di inserire il proprio nome utente/password. IE sembra richiedere fino a 3 volte prima di mostrare il corpo/contenuto della risposta 401. Chrome e Safari sembrano richiedere ripetutamente all'utente.
Questo può essere fonte di confusione per gli utenti finali, che continuano a inserire ripetutamente un nome utente/password Windows valido, solo per essere nuovamente richiesti.
Il modo migliore sarebbe per IIS per restituire un HTTP 403 invece di un HTTP 401:
403 Forbidden
Il server capito la richiesta, ma si rifiuta di compierla. La richiesta di autorizzazione non è e la richiesta NON DOVREBBE essere ripetuta.
Fonte: http://www.w3.org/Protocols/rfc2616/rfc2616-sec10.html#sec10.4.4
Come si configura IIS l'autenticazione integrata di Windows per inviare HTTP 401 per errori di accesso e HTTP 403 per permesso negato?
Questo appare come una risposta a un problema Sto avendo. Qualcuno può spiegare dove sono questi file e/o come controllo la modalità pipeline. Inoltre, se voglio consentire questo a tutti anziché solo alle vendite, come faccio a farlo, o posso semplicemente lasciare quella parte ... – Rothrock
@Rothrock Ho appena avuto questo con IIS 8.5. Ho sprecato 1,5 ore per capire perché IIS stava rifiutando il mio ticket Kerberos cross-forest con 401 invece mi dava 403. Questo è un bug, c'è un modo migliore per risolvere questo? 401 è chiaramente il codice di stato sbagliato. Sembra un tipico scherzo di MS per me. –