Kolega zapytał mnie dzisiaj, jak skonfigurować usługi IIS 7.5 do korzystania ze zintegrowanego uwierzytelniania systemu Windows z podszywaniem się pod prostą stronę intranetową z tylko statyczną zawartością, która jest ograniczone do określonej grupy w Active Directory (np. "Administratorzy").Skonfiguruj uwierzytelnianie systemu Windows II, aby zwracał HTTP 403 zamiast HTTP 401, aby odmówić zgody użytkownikowi uwierzytelnionemu.
Okazuje się, że usługi IIS wysyłają odpowiedź HTTP 401, gdy uwierzytelniony użytkownik nie ma uprawnień do zasobu żądania. Odmowa uprawnień może wynikać z ACL pliku NTFS lub z listy ACL system.webServer/security/authorization
zdefiniowanej w konfiguracji IIS.
Wszystkie najważniejsze przeglądarki wydają się interpretować to 401 jako oznaczające, że użytkownik końcowy podał niepoprawne dane logowania do nazwy użytkownika/hasła systemu Windows, a tym samym prosi użytkownika o podanie nazwy użytkownika/hasła. IE wydaje się monitować do 3 razy przed wyświetleniem treści/treści odpowiedzi 401. Wydaje się, że Chrome i Safari wielokrotnie monitują użytkownika.
Może to być mylące dla użytkowników końcowych, którzy wielokrotnie wprowadzają prawidłową nazwę użytkownika/hasło systemu Windows, aby ponownie uzyskać monit.
Lepszym sposobem byłoby dla IIS zwraca HTTP 403 zamiast HTTP 401:
403 Forbidden
Serwer rozumieć żądanie, ale odmawia go wypełnić. Autoryzacja nie będzie musiała być powtarzana, ani nie będzie udzielana pomoc ani żądanie.
Źródło: http://www.w3.org/Protocols/rfc2616/rfc2616-sec10.html#sec10.4.4
Jak skonfigurować IIS zintegrowane uwierzytelnianie systemu Windows do wysyłania HTTP 401 niepowodzeń logowania i HTTP 403 o zezwolenie odmawia?
Wygląda to odpowiedź na problem Mam. Czy ktoś może wyjaśnić, gdzie są te pliki i/lub jak sprawdzić tryb potoku. Także jeśli chcę pozwolić na to wszystkim, zamiast tylko Sprzedaż, jak to zrobić, czy mogę po prostu zostawić tę część off ... – Rothrock
@Rothrock Po prostu to z IIS 8.5. Zużyłem 1,5 h, aby dowiedzieć się, dlaczego IIS odrzucił mój crossbranżowy bilet Kerberos z 401 zamiast dać mi 403. To jest błąd, czy istnieje lepszy sposób na rozwiązanie tego problemu? 401 jest oczywiście nieprawidłowym kodem statusu. Wygląda mi na typowy żart z MS. –