Клієнт не може вибрати механізм автентифікації лише за номером статусу. Відповідь проксі має описувати, що він приймає.

HTTP вимагає, щоб проксі, який генерує 407, надсилав виклик Proxy-Authenticate. Для служби Basic простий приклад:

HTTP/1.1 407 Proxy Authentication Required
Proxy-Authenticate: Basic realm="Office proxy"

Числовий статус, назва заголовка й синтаксис, специфічний для схеми, однаково важливі. Брендована сторінка помилки зі словом authentication у тілі не замінює заголовок. Користувацькі реалізації також мають надсилати повну відповідь HTTP 407, включно з термінатором заголовка та обрамленням тіла.

Перегляньте відповідь, що дійшла до цього клієнта

Зафіксуйте поля статусу й виклику після видалення секретних значень. Посередник міг перетворити відповідь, або користувацький проксі міг побудувати недійсний виклик. Порівняйте ці докази з власним журналом транзакцій проксі.

Якщо служба натомість надсилає 405 або іншу помилку, не перейменовуйте кожну таку відповідь на 407 у користувацькому клієнті. Ви приховали б справжні збої політики методів і все одно не мали б надійного узгодження схеми. Виправте поведінку служби або скористайтеся її задокументованим підтримуваним шляхом автентифікації.

Кілька викликів також потребують справжнього аналізатора HTTP. Кома може розділяти параметри або виклики; сліпе ділення всього заголовка за комами може пошкодити realm у лапках. Використовуйте підтримувану реалізацію автентифікації клієнта замість низки замін рядків.

Лише коли виклик став придатним, має сенс досліджувати, чому постачальник облікових даних не повернув обліковий запис.

Схожі статті