HTTP 407 bez użytecznego wyzwania Proxy-Authenticate
Sprawdź nagłówek uwierzytelniania proxy, gdy klient nigdy nie wywołuje swojego programu obsługi poświadczeń lub otrzymuje nieoczekiwany status zamiast normalnego wyzwania.
Klient nie może wybrać mechanizmu uwierzytelniania na podstawie samego numeru statusu. Odpowiedź proxy musi opisywać, co akceptuje.
HTTP wymaga, aby proxy generujące 407 wysłało wyzwanie Proxy-Authenticate. Dla usługi Basic prosty przykład to:
HTTP/1.1 407 Proxy Authentication Required
Proxy-Authenticate: Basic realm="Office proxy"
Status liczbowy, nazwa nagłówka i składnia właściwa dla schematu są równie ważne. Strona błędu z marką i słowem authentication w treści nie zastępuje nagłówka. Własne implementacje muszą także wysyłać pełną odpowiedź HTTP 407, wraz z terminatorem nagłówka i obramowaniem treści.
Sprawdź odpowiedź, która dotarła do tego klienta
Zarejestruj pola statusu i wyzwania po usunięciu tajnych wartości. Pośrednik mógł przekształcić odpowiedź albo własne proxy mogło zbudować nieprawidłowe wyzwanie. Porównaj te dowody z własnym dziennikiem transakcji proxy.
Jeśli usługa wysyła zamiast tego 405 lub inny błąd, nie oznaczaj każdej takiej odpowiedzi jako 407 we własnym kliencie. Ukryłbyś rzeczywiste błędy polityki metod, a nadal nie miałbyś niezawodnego uzgadniania schematu. Napraw zachowanie usługi albo użyj jej udokumentowanej i obsługiwanej ścieżki uwierzytelniania.
Wiele wyzwań wymaga też prawdziwego parsera HTTP. Przecinek może rozdzielać parametry lub wyzwania; ślepe dzielenie całego nagłówka na przecinkach może uszkodzić realm w cudzysłowach. Użyj obsługiwanej implementacji uwierzytelniania klienta zamiast serii podmian ciągów.
Dopiero gdy wyzwanie jest użyteczne, ma sens badanie, dlaczego dostawca poświadczeń nie zwrócił konta.